当前位置 : 主页 > 网络编程 > PHP >

ip转10进制

来源:互联网 收集:自由互联 发布时间:2023-09-03
前言 最近需要方便ip存储和查询,所有的数据都转换为10进制,今天就来记录一下,方便以后也进行操作,处理数据也会方便很多 php的ip十进制转换 第一种方法 public function ipToLong(){$i

前言

最近需要方便ip存储和查询,所有的数据都转换为10进制,今天就来记录一下,方便以后也进行操作,处理数据也会方便很多

php的ip十进制转换

第一种方法

  public function ipToLong(){
	$ip = $_SERVER['REMOTE_ADDR'];
	$ip = explode('.', $ip);
	$ip = array_reverse($ip);//数组反转
	$r = 0;
	for($i=0,$j=count($ip); $i<$j; $i++){
		$r += $ip[$i] * pow(256, $i);
	}
	$r = sprintf("%u", $r);
	echo $r;
}

第二种方法

public function ipToLong(){
	$ip = $_SERVER['REMOTE_ADDR'];
	$ip = explode('.',$ip);
	$r = ($ip[0] << 24) | ($ip[1] << 16) | ($ip[2] << 8) | $ip[3];
	if($r < 0) $r += 4294967296;
	echo $r ;
}

第三种方法

echo  ip2long('192.168.1.1');//使用php函数

十进制转为ip php方法

function Long2DotIP ($IPNum) {
	if ($IPNum == "") {
		return "0.0.0.0";
	}
	else {
		return (($IPNum / 16777216) % 256) . "." . (($IPNum / 65536) % 256) . "." . (($IPNum / 256) % 256) . "." . ($IPNum % 256);
	}
}
 function intToIP($iIP){
    $xor = array(0x000000ff,0x0000ff00,0x00ff0000,0xff000000);
    for($i=0; $i<4; $i++){
        $s = '';
        $s = ($iIP & $xor[$i]) >> $i*8;
        if ($s < 0) $s += 256;
        $ips[] = $s;
        }
    krsort($ips);
    return implode('.',$ips);
    }

python的ip十进制相互转换

import socket
import struct

#ip转换十进制  
socket.ntohl(struct.unpack("I",socket.inet_aton("10.10.58.64"))[0])

#十进制转换ip
socket.inet_ntoa(struct.pack("I", socket.htonl(168442432)))
上一篇:php语法和变量
下一篇:没有了
网友评论