查找连接到PC的InterNet的IP地址

时间:2011-04-26 11:43:04

标签: c++ tcp network-programming

服务器计算机有多个IP,其中一个IP与本地LAN连接 其他与WAN(Internet)连接。

服务器应用程序需要绑定IP和端口,以便它可以侦听客户端。 我能够在服务器机器上获得All Ip但面临发现问题 活跃的IP即IP连接的互联网。

以下代码将提供系统中的所有IP。

 char chHostName[MAX_PATH];

  if ( gethostname(chHostName, sizeof(chHostName)) == SOCKET_ERROR)
  {
      return ;
  }    
struct hostent *phe = gethostbyname(chHostName);

  if (phe == 0)
  {    
      return ;

  }
//struct in_addr addrLocalIP;

  for (int i = 0; phe->h_addr_list[i] != 0; ++i) 
  {

    memcpy(&m_addrLocal.sin_addr.S_un, phe->h_addr_list[i], sizeof(struct in_addr));        
  } 

1。有没有办法找到系统中许多IP之间与互联网连接的IP。
2。通过上述程序获取的最后一个IP是否始终是与Internet连接的IP?

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

套接字不知道它们的用途。您的应用程序必须从配置文件或类似文件中获取Internet NIC的IP地址。