C ++ IP Address人类可读的形式

时间:2009-08-18 16:52:22

标签: c++ c sockets

在C / C ++中,您可以使用常规gethostbyname()调用将点分IP地址字符串(在localhost的情况下为“127.0.0.1”)转换为适合标准套接字调用的结构。

现在你怎么翻译回来?我知道我可以进行一些位移,以准确得到我想要的位集,然后将它们打印出去,但是有没有“标准”功能为我做这个?它用于输出到日志文件中,因此我“真的”知道我连接的是谁/什么,因此人类可读的虚线地址比原始十六进制要好得多。

感谢。

2 个答案:

答案 0 :(得分:10)

首先,在新代码中,您通常应该更喜欢将getaddrinfo()用于gethostbyname(),这是旧的和笨重的,并且很难用于支持IPv4和IPv6。见这里:https://beej.us/guide/bgnet/html/multi/syscalls.html

其次,执行所需操作的函数称为inet_ntop

答案 1 :(得分:2)

我会使用inet_ntop