现有一台计算机,装有两个网卡,一个连接外网,一个连接内网
(如: 192.168.0.1)。
难题就是如何获取外网网卡的IP地址。GetAdpterInfo()可以获得所有网卡和ip地址信息,但是如何知道那个IP地址是外网的IP地址?
(如: 192.168.0.1)。
难题就是如何获取外网网卡的IP地址。GetAdpterInfo()可以获得所有网卡和ip地址信息,但是如何知道那个IP地址是外网的IP地址?
解决方案 »
- list control的问题
- 调用CFileDialog程序出错
- http://blogs.msdn.com
- 请教dockbar 停靠栏的问题?求帮忙!!!谢谢!!!
- 急!在线求mallat算法的c/c++源代码
- 如何让子窗口初始时最大化?
- 急!!!请帮忙(为什么CListCtrl的表头出不来)
- 新手求助:VC6.0读取根目录下某个文件夹中的文件,保存文件名,并对每个文件做处理,具体见帖子内~多谢各位大神~
- 如何用*.RGS(Register Script) 实现在 ATL 组件注销时自动删除 "键值"
- 得到VC的独立程序
- 关于edit组件的两个问题。(在线等待,马上给分)
- 如何改变打印的方向?
{
bool m_bVeri = false; addrinfo hints, *result = NULL;
memset(&hints, 0, sizeof(hints));
hints.ai_flags = AI_PASSIVE;
hints.ai_family = AF_UNSPEC;
hints.ai_socktype = SOCK_STREAM;
hints.ai_protocol = IPPROTO_TCP;
char szhostname[128];
gethostname(szhostname,sizeof(szhostname));
if (getaddrinfo(static_cast<LPCTSTR>(szhostname), 0, &hints, &result) != 0)
return m_bVeri; //if (getnameinfo(result->ai_addr, result->ai_addrlen, m_sIP, 256, NULL, 0, NI_NUMERICHOST) != 0)
// return m_bVeri; m_bVeri = true;
addrinfo* paddr;
paddr=result;
int i=0;
while(paddr!=NULL)
{
char tmp[256];
wsprintf(tmp,"the %d address name:%s,",i,paddr->ai_canonname);
OutputDebugString(tmp);
print_sockaddr(paddr->ai_addr);
paddr=paddr->ai_next;
}
freeaddrinfo(result);
return m_bVeri;
}
这里有问必答
http://systemer.51.net/cgi-bin/leoboard.cgi
希望你能在这里找到你满意的答案