Серверный компьютер имеет более одного IP, где один IP связан с локальной сетью и
Другое связано с WAN (Интернет).
Серверное приложение должно связать 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-адрес, получаемый через вышеуказанную программу, всегда является IP-адресом, подключенным к Интернету?