站長資訊網
        最全最豐富的資訊網站

        php ip2long為什么會出現負數?怎么解決?

        php ip2long為什么會出現負數?怎么解決?

        php提供了ip2long與long2ip方法對ip地址處理。

        1、ip2long — 將一個IPV4的字符串互聯網協議轉換成數字格式

        int ip2long ( string $ip_address )

        參數: ip_address 一個標準格式的地址。

        返回值: 返回IP地址轉換后的數字 或 FALSE 如果 ip_address 是無效的。

        2、long2ip — 將數字格式轉換成一個IPV4的字符串互聯網協議

        string long2ip ( string $proper_address )

        參數: proper_address 長整型的正確地址表示。

        返回值: 返回互聯網地址作為字符串。

        3、使用方法

        $ip = '10.1.1.1'; $ip_long = ip2long($ip); echo $ip_long.PHP_EOL; // 167837953 echo long2ip($ip_long); // 10.1.1.1

        4、出現負數原因及處理方法

        當ip地址比較大時,ip2long會出現負數:

        $ip = '192.168.101.100'; $ip_long = ip2long($ip); echo $ip_long.PHP_EOL; // -1062705820 echo long2ip($ip_long); // 192.168.101.100

        原因說明:

        IPv4使用無符號32位地址,因此最多有2的32次方減1(4294967295)個地址。書寫用4個小數點分開的10進制數。

        記為A.B.C.D,例如:192.168.100.100。

        IPv4地址每個10進制數都是無符號的字節,范圍在0~255,將IPv4地址轉為無符號數,其實就是將每個10進制數放在對應的8位上,組成一個4字節的無符號整型。192.168.100.100,192,168在高8位100,100在低8位。

        解決方法:

        輸出時用%u來格式化為無符號整型。

        $ip = '192.168.101.100'; $ip_long = sprintf('%u',ip2long($ip)); echo $ip_long.PHP_EOL; // 3232261476  echo long2ip($ip_long); // 192.168.101.100

        相關教程推薦:《PHP教程》

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 91久久福利国产成人精品| 青青青国产依人精品视频| 国产精品熟女高潮视频| 国产午夜精品理论片| 成人伊人精品色XXXX视频| 亚洲精品尤物yw在线影院| 国产视频精品免费视频| 久久亚洲国产欧洲精品一| 国产在线精品一区二区中文| 夜夜精品无码一区二区三区| 国产人成精品综合欧美成人| 久久这里只精品国产99热| 久久精品九九亚洲精品| 亚洲一级Av无码毛片久久精品| 国产精品夜色视频一级区| 久久国产精品国产自线拍免费| 亚洲精品制服丝袜四区| 久久久久久一区国产精品| 国产精品成人免费观看| 国产日韩欧美精品| 97久久久久人妻精品专区| 久久99精品久久久久久动态图 | 国产精品成人99久久久久91gav| 国产AV午夜精品一区二区入口| 青草国产精品久久久久久| 国产精品久久久久影视不卡| 亚洲精品无码成人AAA片| 久久久91人妻无码精品蜜桃HD | 精品亚洲欧美中文字幕在线看| 日韩三级精品| 2020久久精品国产免费| 久久精品国产亚洲AV大全| 日韩人妻无码精品久久久不卡| 久久精品人人做人人爽97| 亚洲精品国产高清嫩草影院| 四虎影视永久在线精品| 日韩精品一区二区三区不卡| 久久久久人妻精品一区三寸蜜桃| 精品无码国产污污污免费网站国产 | 亚洲精品乱码久久久久久按摩 | 91精品无码久久久久久五月天|