IP到數字轉換

2021-03-31 08:56:30 字數 2126 閱讀 5328

平時在資料庫的程式設計過程中,需要記錄一些ip位址,原本是直接和ip位址(***.***.***.***)的形式儲存,也就是說在資料庫裡是明文的,且是字串,比較佔空間。

有一天同事讓我幫他把乙個資料庫裡的一些數字轉成ip位址,那個資料庫是sygate(乙個共享上網的軟體)用來記錄上網記錄的,我開啟資料庫看了看,剛開始沒有什麼頭緒,因為自己對這方面沒有什麼研究,於是就去網上找找,看看有沒有相關的資料,嗯,不錯,現在的網路基本上想要的資料都可以找的到,我找的一篇文章,或者更恰當的說是一段文字說明,介紹它的演算法的;既然已經有了頭緒,那麼就開始用**來實現吧。

'轉換過程如下:

'1、取得ip,如:192.168.0.1

'2、再將ip順序反**1.0.168.192

'3、將ip分成四部分,分別轉成16進製制,位數不足,在左邊加0,轉換完成後為:01.00.a8.c0

'4、去掉所有的".",結果為:100a8c0

'5、再將其轉成十進位制:16820416

'// ip到數字轉換

public function iptonumber(byval strvalue as string) as string

dim strtemp                   as string

dim strip()                   as string

dim stroutput                 as string

dim i                         as integer

on error goto locaterr

'// 將ip分成4個部份

strip = split(strvalue, ".")

'// 這裡是將ip倒過來的,即:192.168.0.1=1.0.168.192

for i = 3 to 0 step -1

strtemp = hex$(strip(i))

'// 將每部份以2位數的數字表示

stroutput = stroutput & string(2 - len(strtemp), "0") & strtemp

next

iptonumber = cstr(trim(clng("&h" & stroutput)))

exit function

locaterr:

err.clear

iptonumber = ""

end function

'// 數字到ip轉換(是通過 iptonumber 轉換過的數字)

public function numbertoip(byval strvalue as string) as string

dim strtemp                      as string

dim strip(1 to 4)                as string

dim stroutput                    as string

dim i                            as integer

on error goto locaterr

'// 取得十六進製制值

strtemp = hex$(strvalue)

'// 不足8位前面加 0

strtemp = string(8 - len(strtemp), "0") & strtemp

'// 將數字以每2位分給陣列

for i = 1 to 4

strip(i) = mid$(strtemp, (i - 1) * 2 + 1, 2)

next

'// 合併ip

for i = 4 to 1 step -1

stroutput = stroutput & cint("&h" & strip(i)) & "."

next

'// 去掉最後的乙個 "."

stroutput = left$(stroutput, len(stroutput) - 1)

numbertoip = stroutput

exit function

locaterr:

err.clear

numbertoip = ""

end function

ip位址轉換數字函式 iton IP位址轉換函式

在ascii字串 192.168.0.99 與網路位元組序的二進位制值間轉換位址。涉及函式的標頭檔案為 include 一 只適用於ipv4協議的函式 int inet aton const char string,struct in addr addr 函式成功,返回值1,否則返回零。將strin...

IP與數字互相轉換(PHP )

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

PHP實現IP 數字互相轉換

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