2014-10-26 54 views
0

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

谢谢,

+0

可能是因为'inet_pton($ ip)'没有返回一个字符串,所以它试图用另一个类型'sprintf'字符串,这是无法完成的,所以它返回0(错误)。 – cybermonkey 2014-10-26 15:54:29

回答

2

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

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