【问题标题】:Why sprintf('%u', inet_pton($ip)) return 0?为什么 sprintf('%u', inet_pton($ip)) 返回 0?
【发布时间】:2014-10-26 15:12:48
【问题描述】:

不管$ip=4.23.45.61还是2a00:8640:0001:0000:0224:36ff:feef:1d89,为什么sprintf('%u', inet_pton($ip))或者sprintf('%x', inet_pton($ip))总是返回0?

谢谢,

【问题讨论】:

  • 可能是因为inet_pton($ip) 不返回字符串,所以它试图sprintf 使用另一种类型的字符串,这无法做到因此返回0(错误)。

标签: php ipv6 ipv4


【解决方案1】:

inet_pton 返回一个包含地址压缩表示的二进制字符串。它不是数字,因此无法使用用于数字的%u%x 进行格式化。

如果要将打包的二进制字符串转换回人类可读的字符串,可以使用inet_ntop

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-21
    • 2022-01-23
    • 1970-01-01
    • 2011-03-01
    • 2011-07-01
    • 2011-01-17
    • 2018-04-05
    相关资源
    最近更新 更多