请教:关于IP的获得!!!!! 在UDP通信的时候需要绑定IP和端口。如何让程序自动获得本机的IP地址??用什么函数来实现??有知道的朋友请帮忙解答下!!谢谢!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 先用gethostname()获得本机地址再用gethostbyname()就可以得到本机的ip列表了具体参数自己去查查看 char chName[80]; CString IP=""; gethostname(chName,80); pcName = chName; struct hostent* phost; int occurred=0,j=0; phost=gethostbyname(chName); int h_length=4; for(j=0;j<h_length;j++) { CString addr; if(j>0) IP+="."; addr.Format("%u",(unsigned int)((unsigned char*)phost->h_addr_list[occurred])[j]); IP+=addr; } struct hostent* phost;这个结构体指针指的结构体具体是怎么样的???结构体包括哪些元素??? MSDN里面有详细的说明:struct hostent { char FAR * h_name; char FAR * FAR * h_aliases; short h_addrtype; short h_length; char FAR * FAR * h_addr_list;}; 用这段代码,可以搞定/* 获得本机IP */GetLocalIP(char *strLocalIP){ try { char sName[255] = {0}; PHOSTENT hostinfo = 0; if (gethostname(sName, sizeof(sName)) == 0) { if ((hostinfo = gethostbyname(sName)) != NULL) { strcpy(strLocalIP,inet_ntoa (*(struct in_addr *)*hostinfo->h_addr_list)); } } return TRUE; } catch (...) { Print(0, "获得本地IP出错! \n"); return FALSE; } } 讨论HOOK的一种思路 10博士致信李彦宏 申请加盟百度研究框计算 ICDecompress解压非关键帧总是返回Result值为4294967196 opengl画nurbs曲线,只有控制点(Control point)曲线,没有穿越点(Point curve)曲线吗 关于双缓冲作图 List Control能否嵌在窗口中? 给joycenter送分的地方。 无法删除数据库中的数据(MFC) 时间查询出错? 有关Xbox???? 一个关于CMarkup使用的问题 vfw如何实现在视频预览时以鼠标点为中心放大视频
再用gethostbyname()就可以得到本机的ip列表了
具体参数自己去查查看
CString IP="";
gethostname(chName,80);
pcName = chName;
struct hostent* phost;
int occurred=0,j=0;
phost=gethostbyname(chName);
int h_length=4;
for(j=0;j<h_length;j++)
{
CString addr;
if(j>0)
IP+=".";
addr.Format("%u"
,(unsigned int)((unsigned char*)phost->h_addr_list[occurred])[j]);
IP+=addr;
}
这个结构体指针指的结构体具体是怎么样的???结构体包括哪些元素???
char FAR * h_name;
char FAR * FAR * h_aliases;
short h_addrtype;
short h_length;
char FAR * FAR * h_addr_list;
};
/* 获得本机IP */GetLocalIP(char *strLocalIP)
{
try
{
char sName[255] = {0};
PHOSTENT hostinfo = 0;
if (gethostname(sName, sizeof(sName)) == 0)
{
if ((hostinfo = gethostbyname(sName)) != NULL)
{
strcpy(strLocalIP,inet_ntoa (*(struct in_addr *)*hostinfo->h_addr_list));
}
}
return TRUE;
}
catch (...)
{
Print(0, "获得本地IP出错! \n");
return FALSE;
}
}