2014-10-26 55 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