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

        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號
        主站蜘蛛池模板: 大伊香蕉精品视频在线导航| 国产精品第1页| 亚洲综合国产精品| 三上悠亚久久精品| 国内精品视频在线观看| 国产精品欧美亚洲韩国日本| 少妇人妻精品一区二区三区| 色婷婷久久久SWAG精品| 国产精品欧美一区二区三区| 国产短视频精品一区二区三区| 亚洲AV日韩精品久久久久| 欧美XXXX黑人又粗又长精品| 国产精品女同一区二区久久| 1区1区3区4区产品芒果精品| 乱色精品无码一区二区国产盗| 99久久婷婷免费国产综合精品| 亚洲国产精品无码专区影院 | 久久精品国产亚洲麻豆| 无码人妻精品一区二区三区99仓本 | 中文成人无字幕乱码精品区| 久久久久国产精品麻豆AR影院 | 国产成人精品AA毛片| 无码精品国产VA在线观看| 最新国产精品无码| 亚洲精品无码日韩国产不卡?V | 国产精品嫩草影院久久| 国产精品美女久久久久AV福利| 青青草国产精品欧美成人| 国产精品一级片| 日本一区精品久久久久影院| 青草青草久热精品视频在线网站| 热久久国产精品| 国产成人精品久久亚洲高清不卡| 99久久精品国产综合一区| 国产2021久久精品| 国产欧美精品一区二区色综合| 国产欧美精品一区二区色综合 | 精品一区二区三区在线观看视频| 日产精品99久久久久久| 久久精品国产亚洲av水果派 | 精品国产不卡一区二区三区 |