php手動實現ip2long和long2ip

2022-08-30 08:12:10 字數 1001 閱讀 6179

php手動實現ip2long和long2ip

/*

* * 測試

*/public

function

testipaction()

/*** 自己實現ip2long

* @param $ip

* @return float|int|string

*/protected

function myip2long($ip

)

//將十進位制轉化為十六進製制

$hex = dechex($value

);

//每個ip最大是255,十六進製制是ff,最大是兩位

// 比如ip:1.1.1.1如果不補0,則十六進製制是1111,十進位制是4369

// 如果補0,則十六進製制是01010101,十進位制是16843009

if (strlen($hex) < 2)

$newhex .= $hex

; }

//十六進製制轉化為十進位制

$intstr = hexdec($newhex

);

return

$intstr

; }

/*** 自己實現long2ip

* @param $int

* @return string

*/protected

function mylong2ip($int

)

//每兩位進行分組。然後檢視每組的第一位是否是0,如果是則去掉。然後把得到的值轉為十進位制,放在陣列中,最後把陣列用.連線起來

for ($i =0; $i

<8;$i+=2)

$aparr = hexdec($a

); }

return

implode('.', $aparr

); }

PHP實現IP 數字互相轉換

將ip轉換為數字 function ipton ip ipstr iphex 將四段ip的16進製制數連線起來,得到乙個16進製制字串,長度為8 return hexdec ipstr 將16進製制字串轉換成10進製,得到ip的數字表示 將數字轉換為ip,進行上面函式的逆向過程 function n...

通過PHP實現獲取訪問使用者IP

在php中自帶了乙個非常的簡單的獲取ip位址的全域性變數,很多初學都獲取ip都使用它了,但是對於這些我們一般用法是滿足了,但是對於要求高精度這個函式還是不行的。這個是最簡單的方法,對於開了透明 之類的是沒有辦法的,如果內網訪問也不能讀取正確的外網ip,不過很省力就是了 ip server remot...

IP白名單的實現(PHP)

有些專案可能會用到乙個ip位址的白名單黑名單之類的驗證。比如,只有ip位址在白名單中,才可以訪問該系統。那麼此時,白名單的維護,一般是乙個檔案,裡邊是一些ip位址 每行乙個ip 當然也有的可能是用資料庫記錄白名單。當然,即使放在資料庫中記錄 方便管理 也可以在後台根據資料庫生成ip白名單的配置檔案,...