PHP ip地址和十進制互轉封裝類

閒來無事封裝了一個類,可作爲ip地址的 轉換使用,再此也推薦兩個函數,有關ip地址的,ip2long:將IPv4的ip地址(以小數點分隔形式)轉換爲int、long2ip:將int型表示的ip地址表示成字符串 aaa.bbb.ccc.ddd 的形式

下面上代碼:

<span style="white-space:pre">	</span>/*
		ip地址的十進制長整型轉換
	*/
	class IpConvert{
		//ip轉長整型
		public ipToInt($sIP){  
			$aIP = explode('.',$sIP);  
			$iIP = ($aIP[0] << 24) | ($aIP[1] << 16) | ($aIP[2] << 8) | $aIP[3]  
			if($iIP < 0) $iIP += 4294967296;  
			return $iIP;  
		}
		//長整型轉ip
		function intToIP($iIP){  
			$xor = array(0x000000ff,0x0000ff00,0x00ff0000,0xff000000);  
			for($i=0; $i<4; $i++){  
				${s.$i} = ($iIP & $xor[$i]) >> $i*8;  
				if (${s.$i} < 0) ${s.$i} += 256;  
			}  
			return $s3.'.'.$s2.'.'.$s1.'.'.$s0;  
		}  
	}

發佈了30 篇原創文章 · 獲贊 5 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章