为何得到的是子网掩码? (50分)

  • 主题发起人 主题发起人 FangQ
  • 开始时间 开始时间
F

FangQ

Unregistered / Unconfirmed
GUEST, unregistred user!
在CB里我用下面的函数(从原来大家的讨论中改编的)来得到自己
的IP地址然后,但有位南京的同志用我的程序传过来的IP地址竟
然是它机子的子网掩码,请问到底是那句错了?

BTW:他们是几台机子用一个IP,然后用不同的子网掩码来同时上网的

//----------------------------------
AnsiString LocalIP()
{
u_long result;
int bufsize=255;
char *buf;
AnsiString IP="";
struct hostent FAR * RemoteHost;
buf=NULL;
try
{
buf=new char[bufsize];
gethostname(buf,bufsize);
RemoteHost=gethostbyname(buf);
if (RemoteHost!=NULL)
{
int Sec=(int)(RemoteHost->h_addr_list)[0][0];
IP+= AnsiString(Sec>=0? Sec: 256+Sec)+".";
Sec=(int)(RemoteHost->h_addr_list)[0][1];
IP+= AnsiString(Sec>=0? Sec: 256+Sec)+".";
Sec=(int)(RemoteHost->h_addr_list)[0][2];
IP+= AnsiString(Sec>=0? Sec: 256+Sec)+".";
Sec=(int)(RemoteHost->h_addr_list)[0][3];
IP+= AnsiString(Sec>=0? Sec: 256+Sec);
}
else
result=(long int)(RemoteHost->h_addr_list);
}
catch(...)
{
if (buf!=NULL)
delete buf;
}
return IP;

}
 
关注FangQ 的问题,同时我在移植一个软件时发生了如下问题:
undeclared identifier: PHostEnt
undeclared identifier: TWSAData
undeclared identifier: gethostname()
undeclared identifier: gethostbyname()
.........
我用的操作系统是Windows98,在其help,search 中
没有找到相关的帮助,是否在Windows NT 中有,加100大洋
恳请帮助!紧急!!!
Email:
xiaoniu625@263.net
 
uses WinSock;

以前有过, 请在 internet 版中查找.
 
下面的问题不是和你说的问题相关的

RemoteHost=gethostbyname(buf);
if (RemoteHost!=NULL)
{
。。。。。。。。。。。。。
}
else
result=(long int)(RemoteHost->h_addr_list); //这里,既然你知道RemoteHost
//是 null 为什么还 RemoteHost->...
 
感谢SuperMMX,我的问题解决了,是在源代码中少加了WinSock,希望继续得到您的帮助,
谢谢,100大洋奉上,同时谢谢大家.顺便问一下,在何处可以找到关于介绍WinSock的资料,
10个大洋.(小弟家境贫寒,日后的问题多着呐,细水常流,各位见谅.)
 
msdn 中应该有的.
 
接受答案了.
 

Similar threads

I
回复
0
查看
835
import
I
I
回复
0
查看
727
import
I
I
回复
0
查看
624
import
I
后退
顶部