2009-08-18 22 views
5

在C/C++中,可以使用常規gethostbyname()調用將虛線IP地址字符串(localhost中的「127.0.0.1」)轉換爲適用於標準套接字調用。C++ IP地址可讀形式

現在你如何翻譯它?我知道我可以做一些轉換以獲得我想要的位集,並將它們打印出來,但是有沒有「標準」功能可以爲我執行此操作?它用於輸出到日誌文件中,以便我「真正」知道我要連接的是誰,因此人類可讀的虛線地址比原始的十六進制好很多。

謝謝。

回答

10

首先,在新代碼中,您通常應該更喜歡使用getaddrinfo()來gethostbyname(),這種方法既舊又笨重,並且很難用於支持IPv4和IPv6。看到這裏:http://beej.us/guide/bgnet/output/html/multipage/syscalls.html

其次,做你想做的功能稱爲inet_ntop

+1

我將此標記爲正確的,但發現它在windows下無法正常工作,但確實發現在那裏有正確的函數調用inet_ntoa,它的功能幾乎相同。根據beej,它不支持IPv6,但它在win32用戶的正常winsock.h中。 – 2009-08-18 17:08:50