我是电信拨号宽带上网络的,请问如何获得本机器IP地址,好象本地连接和宽带拨号的IP地址是不同的,我查了,本地连接IP:192.168.1.4,宽带拨号IP:220.174.2.155,我如何在winsocket中分别获得这两个IP地址???
gethostname(lname,sizeof(lname)-1);phost=gethostbyname(lname);好象只能获得本地连接IP:192.168.1.4.
gethostname(lname,sizeof(lname)-1);phost=gethostbyname(lname);好象只能获得本地连接IP:192.168.1.4.
不要只去list[0]
if(lpHostEnt==NULL)
{
//产生错误
sIpAddress=_T("");
return GetLastError();
}
//获取IP
LPSTR lpAddr=lpHostEnt->h_addr_list[0];
if(lpAddr)
{
struct in_addr inAddr;
memmove(&inAddr,lpAddr,4);
//转换为标准格式
sIpAddress=inet_ntoa(inAddr);
if(sIpAddress.IsEmpty())
sIpAddress=_T("没有取得");
}
return 0;
char szHostName[128];//将计算机名称放入数组中
struct hostent *pHost;//定义一个结构体指针变量pHost
//通过gethostname函数来获取计算机的名称
if(!gethostname(szHostName,sizeof(szHostName)))//获取成功
{
SetDlgItemText(IDC_NAME,szHostName);
//通过函数gethostbyname和计算机的名称来获取计算机的IP地址
pHost = gethostbyname(szHostName);
//将所获取的IP地址转化为真正的IP地址
LPCSTR IPAddress = inet_ntoa(*(struct in_addr*)(*pHost->h_addr_list));
SetDlgItemText(IDC_IP,IPAddress);
}
else
{
AfxMessageBox("<信息未知>");
}这样就是对本地的IP进行获取阿 ~~~
Header: Declared in Iphlpapi.h.
Library: Use Iphlpapi.lib.据说要新的SDK才有这两个文件。借地方用一下谁有这两个文件,发给我一份:[email protected]