С открытым гнездом, принятым гнездом для прослушивания, я хочу получить имя хоста удаленного конца. Использование getnameinfo() для хостов с несколькими именами хостов Я не всегда получаю одно и то же имя хоста. Можно ли получить все из них или по крайней мере получить один и тот же каждый раз?Как получить стабильное имя хоста сокета?
Я прочитал в некоторых документах что-то о каноническом имени хоста, но не могу найти больше информации, кроме того, что это то, что мне нужно.
Вот как я называю getnameinfo()
char szHostname[ NI_MAXHOST ];
const sockaddr* pSock;
int nSockLen;
// stuff to get a pSock
int ret = getnameinfo(pSock, nSockLen, szHostname, NI_MAXHOST, 0, 0, NI_NAMEREQD);
if (ret != 0)
ret = getnameinfo(pSock, nSockLen, szHostname, NI_MAXHOST, 0, 0, NI_NUMERICHOST);
printf(szHostname);
Если узел X имеет несколько имен хостов AAA & BBB szHostname может иметь либо.
Пожалуйста, разместите код с тем, что вы пробовали софар. – hetepeperfan
Отредактировано как использовать getnameinfo. – Johnny