请教:在多个网卡的情况下,如何获取所有的ip地址
解决方案 »
- 关于MFC中树控件的选中焦点问题
- 再请教一个关于线程以及同步等问题
- 使用以下函数截屏得到的图像大小与prtsc键截屏获得大小不一致
- 我怎么从Excle格式文件里读不到数据呢?急!!
- 今天发工资,没有兴奋的感觉,心情低落到极点,散分!!!!!
- 这是什么错误 unexpected end of file while looking for precompiled header directive
- 如何做个批处理连续打印
- VC.net单步调试总是停在过去写过的程序上,而非改过的当前程序,why?
- 我的软件终于在CSDN上发布了,大家试用一下,提提意见。合理化建议一律给分。
- 如何在对话框上显示一个位图
- visual c++ 6.0我想生成一个可执行程序(release)而不是调试(debug)一个,怎么生成出来的程序没有出现在release文件夹里面,甚至根本就没
- 请教大家怎么在程序中判断网线已被拨出?????欢迎大家讨论,谢谢大家无私帮助
//首先取得机器名称
gethostname(hostname, sizeof(hostname));
//根据名称获得机器IP地址信息,存放在结构体hostent中
LPHOSTENT lphost = gethostbyname(hostname);//对链表进行访问,取出所有的IP地址
int i=0;
while(lphost->h_addr_list[i] != NULL)
{
memcpy(&LocalIPList[i][0],inet_ntoa(*(struct in_addr *)lphost->h_addr_list[i]),16);
i++;
}
不过//根据名称获得机器IP地址信息,存放在结构体hostent中
LPHOSTENT lphost = gethostbyname(hostname); 这一句话就搞定了么?
能把详细代码给我么[email protected]
void CGetIPDlg::OnQuery()
{
char szHostName[128];
char szT[20];
if( gethostname(szHostName, 128) == 0 )
{
// Get host adresses
m_HostName.SetWindowText(szHostName);
struct hostent * pHost;
int i;
pHost = gethostbyname(szHostName);
for( i = 0; pHost!= NULL && pHost->h_addr_list[i]!= NULL; i++ )
{
char str[100];
char addr[20];
int j;
LPCSTR psz=inet_ntoa (*(struct in_addr *)pHost->h_addr_list[i]);
m_IPAddr.AddString(psz);
} }
}
你可以用for循环到null为止,就可以将所有ip地址去出来了