Solution au problème des nombres négatifs ip2long en php

不言
Libérer: 2023-04-04 18:30:02
avant
3636 Les gens l'ont consulté

Ce que cet article vous apporte, c'est la solution au problème des nombres ip2longs négatifs en PHP. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

Tout le monde sait peut-être que PHP fournit les méthodes ip2long et long2ip pour traiter les adresses IP. Commençons par quelques concepts :

1.ip2long — Convertir un protocole Internet de chaîne IPV4 en un format numérique
int ip2long ( string $ip_address )
参数: ip_address 一个标准格式的地址。
返回值: 返回IP地址转换后的数字 或 FALSE 如果 ip_address 是无效的
Copier après la connexion
2.long2ip — Convertir un format numérique en un protocole Internet de chaîne IPV4
string long2ip ( string $ip_address )
参数:ip_address 长整型的正确地址表示。
返回值: 返回互联网地址作为字符串。
Copier après la connexion

Exemple :

$ip = '10.0.0.1';
$ip_long = ip2long($ip);
echo $ip_long.PHP_EOL;  // 167772161
echo long2ip($ip_long); // 10.0.0.1
Copier après la connexion

Lorsque l'adresse IP est relativement grande, ip2long aura des nombres négatifs :

$ip = '192.168.100.1';
$ip_long = ip2long($ip);
echo $ip_long.PHP_EOL;  // -1062706175
echo long2ip($ip_long); // 192.168.100.1
Copier après la connexion

Raison :

IPv4 utilise des adresses 32 bits non signées, il y a donc au plus 2 puissances 32 moins 1 (4294967295) adresses. Écrivez des nombres décimaux séparés par 4 points décimaux.
Enregistrez-le au format A.B.C.D, par exemple : 192.168.100.100.

Chaque nombre décimal dans l'adresse IPv4 est un octet non signé, allant de 0 à 255. Convertissez l'adresse IPv4 en un nombre non signé

Plus de bêtises, résolu Méthode :
Utiliser. %u pour le formater comme un entier non signé lors de la sortie.

$ip = '192.168.100.1';
$ip_long = sprintf('%u',ip2long($ip));
echo $ip_long.PHP_EOL;  // 3232261121
echo long2ip($ip_long); // 192.168.100.1
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
php
source:cnblogs.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal