代码之家  ›  专栏  ›  技术社区  ›  Kevin Anderson

C++ IP地址人类可读形式

  •  5
  • Kevin Anderson  · 技术社区  · 16 年前

    在C/C++中,您可以使用正则GeToStByMyMe()调用来将虚线IP地址字符串(“本地主机”的情况下的“127.0.0.1”)转换成适合于标准套接字调用的结构。

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

    谢谢。

    2 回复  |  直到 7 年前
        1
  •  10
  •   Sandburg    7 年前

    首先,在新的代码中,您通常更喜欢使用getaddrinfo()而不是gethostbyname(),它既旧又笨重,很难同时支持IPv4和IPv6。请参见此处: https://beej.us/guide/bgnet/html/multi/syscalls.html

    第二,做你想做的事的函数叫做 inet_ntop .

        2
  •  2
  •   C. K. Young    16 年前

    我会用 inet_ntop .