PHP ip相关知识

参考连接:https://www.php.net/manual/zh/function.ip2long.php

参考连接:https://www.php.net/manual/zh/function.sprintf.php


1. ip地址转整型

<?php
$ip = "192.168.178.255";
$long = sprintf("%u\n", ip2long($ip));
echo $long;
结果:3232281343

2. 通过域名获取ip地址

<?php
$ip = gethostbyname('www.suphp.cn');
$long = sprintf("%u\n", ip2long($ip));
echo $long;
exit;
结果:660768957

3. 使用域名、ip、整数ip访问网站

<?php
$ip = gethostbyname('www.suphp.cn');
$out = "The following URLs are equivalent:<br />\n";
$out .= 'http://www.suphp.cn/, http://' . $ip . '/, and http://' . sprintf("%u", ip2long($ip)) . "/<br />\n";
结果:The following URLs are equivalent:
  http://www.suphp.cn/, http://39.98.136.189/, and http://660768957/

注:

因为PHP的 integer 类型是有符号,并且有许多的IP地址讲导致在32位系统的情况下为负数, 你需要使用 "%u" 进行转换通过 sprintf() 或printf() 得到的字符串来表示无符号的IP地址。

(完)