如何获取本机IP
怎么获取本机IP
请问如何获取本机IP地址,我用如下方法,str显示出来的是乱码,请大家指教
char szHostname[40];
HOSTENT* LocalHost;
gethostname(szHostname,40);
LocalHost =gethostbyname(szHostname);
char *IPBuf=new char[40];
memset(IPBuf, '\0 ',40);
IPBuf= LocalHost-> h_addr_list[0];
CString str=IPBuf;
MessageBox(str);
------解决方案--------------------
CString CConnDLG::GetLocalIp()
{
struct hostent* phost;
char ip[20];
char hostname[50];
gethostname(hostname,50);
phost = gethostbyname(hostname);
char ** names;
names = phost-> h_aliases;
char ** iplist;
iplist = phost-> h_addr_list;
while( * iplist)
{
strcpy(ip,inet_ntoa( * (struct in_addr * ) * iplist));
iplist ++;
}
CString LocalIp = ip;
return LocalIp;
}
自己改一下
我程序里用过的东东
请问如何获取本机IP地址,我用如下方法,str显示出来的是乱码,请大家指教
char szHostname[40];
HOSTENT* LocalHost;
gethostname(szHostname,40);
LocalHost =gethostbyname(szHostname);
char *IPBuf=new char[40];
memset(IPBuf, '\0 ',40);
IPBuf= LocalHost-> h_addr_list[0];
CString str=IPBuf;
MessageBox(str);
------解决方案--------------------
CString CConnDLG::GetLocalIp()
{
struct hostent* phost;
char ip[20];
char hostname[50];
gethostname(hostname,50);
phost = gethostbyname(hostname);
char ** names;
names = phost-> h_aliases;
char ** iplist;
iplist = phost-> h_addr_list;
while( * iplist)
{
strcpy(ip,inet_ntoa( * (struct in_addr * ) * iplist));
iplist ++;
}
CString LocalIp = ip;
return LocalIp;
}
自己改一下
我程序里用过的东东