ホームページ >バックエンド開発 >PHPチュートリアル >PHP_PHP チュートリアルで IP アドレスを 10 進数に変換する方法
PHPでIPアドレスを10進数に変換するには? 最近PHPでIPアドレスがよく使われますが、IPアドレスが10進数で取得できません。したがって、PHP で IP アドレスを 10 進数に変換する方法は私たちにとって頭の痛い問題です。次の 2 つの方法は、IP アドレスを 10 進数に変換するために私がまとめた比較的簡単な方法です。それが私たちを助けることができることを願っています。
方法 1:
コードは次のとおりです
パブリック関数 ipToLong(){
$ip = $_SERVER['REMOTE_ADDR'];
$ip =explode('.', $ip);
$ip = array_reverse($ip);//配列の反転
$r = 0;
for($i=0,$j=count($ip); $i
$r += $ip[$i] * pow(256, $i);
}
$r = sprintf("%u", $r);
エコー$r;
}
方法 2:
コードは次のとおりです
パブリック関数 ipToLong(){
$ip = $_SERVER['REMOTE_ADDR'];
$ip =explode('.',$ip);
$r = ($ip[0] if($r
エコー $r ;}
ローカルサーバーでの両方の結果は 3232235877 で、使用される IP は 192.168.1.101 です。 ping 192.168.1.101 と ping 3232235877 を使用して、それらが同じかどうかを確認します。
mysql と php の両方が IP 変換 10 進数関数を提供していることを知らない友人もいるかもしれません
MySQL は、アドレスと整数の間で変換するために、INET_ATON と INET_NTOA という 2 つの関数を提供します。
1. IPはドット形式からデジタル形式に変換されます。
コードは次のとおりです
mysql> select inet_aton('127.0.0.1');
+-------------------------------------+
| inet_aton('127.0.0.1') |
+---------------------+
| 2130706433 |
+---------------------+
セット内1行(0.00秒)
2. IPはデジタル形式からドット形式に変換されます。
コードは次のとおりです
mysql> select inet_ntoa(2130706433);
+----------------------+
| inet_ntoa(2130706433) |
+----------------------+
| 127.0.0.1 |
+----------------------+
セット内1行(0.00秒)
PHPはip2long関数を直接利用できます
コードは次のとおりです
echo ip2long('192.168.1.38');
出力: 3232235814