IP地址與物理地址怎么轉(zhuǎn)換
IP地址與物理地址怎么轉(zhuǎn)換
IP地址與物理地址怎么轉(zhuǎn)換?對于這個問題,相信網(wǎng)管們都會說很簡單,不過我們小白朋友不知道啊,那么IP地址與物理地址怎么轉(zhuǎn)換呢?今天學習啦小編與大家分享下IP地址與物理地址轉(zhuǎn)換的解決方法,有興趣的朋友不妨了解下。
IP地址與物理地址轉(zhuǎn)換方法
ARP協(xié)議是“Address Resolution Protocol”(地址解析協(xié)議)的縮寫。在局域網(wǎng)中,網(wǎng)絡中實際傳輸?shù)氖?ldquo;幀”,幀里面是有目標主機的MAC地址的。在以太網(wǎng)中,一個主機和另一個主機進行直接通信,必須要知道目標主機的MAC地址。但這個目標MAC地址是如何獲得的呢?它就是通過地址解析協(xié)議獲得的。所謂“地址解析”就是主機在發(fā)送幀前將目標IP地址轉(zhuǎn)換成目標MAC地址的過程。ARP協(xié)議的基本功能就是通過目標設備的IP地址,查詢目標設備的MAC地址,以保證通信的順利進行。
ARP協(xié)議主要負責將局域網(wǎng)中的32位IP地址轉(zhuǎn)換為對應的48位物理地址,即網(wǎng)卡的MAC地址,比如IP地址位192.168.0.1網(wǎng)卡MAC地址為00-03-0F-FD-1D-2B.整個轉(zhuǎn)換過程是一臺主機先向目標主機發(fā)送包含有IP地址和MAC地址的數(shù)據(jù)包,通過MAC地址兩個主機就可以實現(xiàn)數(shù)據(jù)傳輸了.
IP地址與數(shù)字地址相互轉(zhuǎn)換
為什么要將IP段地址轉(zhuǎn)化成數(shù)字地址?
根據(jù)TCP/IP協(xié)議規(guī)定,IP地址是由32位二進制數(shù)組成,而且在INTERNET范圍內(nèi)是唯一的。例如,某臺聯(lián)在因特網(wǎng)上的計算機的IP地址為:
11010010 01001001 10001100 00000010
很明顯,這些數(shù)字對于人來說不太好記憶。人們?yōu)榱朔奖阌洃?,就將組成計算機的IP地址的32位二進制分成四段,每段8位,中間用小數(shù)點隔開,然后將每八位二進制轉(zhuǎn)換成十進制數(shù),這樣上述計算機的IP地址就變成了:118.123.15.102。
由于在同一個區(qū)域里,IP段都是很相近的,如果拿IP段(118.123.15.102)直接進行比較,在操作上很是麻煩,而且數(shù)據(jù)的存儲也不易實現(xiàn),所以才會把IP轉(zhuǎn)換成數(shù)字地址,再來確定IP段的物理地址。
理解了IP的概念之后,諸如IP(118.123.15.102)怎樣轉(zhuǎn)換成數(shù)字地址呢?
IP本是32為二進制,為了方便記憶才轉(zhuǎn)化成了四段十進制,所以只要把IP還原成二進制,再轉(zhuǎn)換成十進制就可以得到IP的數(shù)字地址。
.NET C# IP與數(shù)字地址相互轉(zhuǎn)化:
//IP轉(zhuǎn)換成數(shù)字地址
public static uint IPToInt(string ipAddress)
{
string disjunctiveStr = ".,: ";
char[] delimiter = disjunctiveStr.ToCharArray();
string[] startIP = null;
for (int i = 1; i <= 5; i++)
{
startIP = ipAddress.Split(delimiter, i);
}
string a1 = startIP[0].ToString();
string a2 = startIP[1].ToString();
string a3 = startIP[2].ToString();
string a4 = startIP[3].ToString();
uint U1 = uint.Parse(a1);
uint U2 = uint.Parse(a2);
uint U3 = uint.Parse(a3);
uint U4 = uint.Parse(a4);
uint U = U1 << 24;
U += U2 << 16;
U += U3 << 8;
U += U4;
return U;
}
//數(shù)字地址轉(zhuǎn)換成IP
public static string IntToIP(uint ipAddress)
{
long ui1 = ipAddress & 0xFF000000;
ui1 = ui1 >> 24;
long ui2 = ipAddress & 0x00FF0000;
ui2 = ui2 >> 16;
long ui3 = ipAddress & 0x0000FF00;
ui3 = ui3 >> 8;
long ui4 = ipAddress & 0x000000FF;
string IPstr = "";
IPstr = System.Convert.ToString(ui1) + "."
+ System.Convert.ToString(ui2) + "."
+ System.Convert.ToString(ui3)
+ "." + System.Convert.ToString(ui4);
return IPstr;
}
轉(zhuǎn)換成數(shù)字地址以后是不是查詢起來很是方便,只要介于某個IP段,就可以找出具體的物理地址了。當然,前提是有個巨大的IP庫。手頭上還有一個IP庫,大概有36W+的記錄。
IP段轉(zhuǎn)換成真實的物理地址可以用在什么地方?
用途有很多啦,
1、比如流量統(tǒng)計啦,
2、I/M聊天工具里的地理位置顯示啦,網(wǎng)頁上的地理位置顯示啦,
3、門戶網(wǎng)站有諸多城市區(qū)分的,會根據(jù)訪問者IP來判斷訪客應該去訪問哪個城市的網(wǎng)站板塊,
4、有的天氣預報網(wǎng)站,默認的就是訪客所在的城市。
看過“IP地址與物理地址怎么轉(zhuǎn)換”的人還看了:
5.如何修改MAC的物理地址 IP地址與物理地址怎么轉(zhuǎn)換?對于這個問題,相信網(wǎng)管們都會說很簡單,不過我們小白朋友不知道啊,那么IP地址與物理地址怎么轉(zhuǎn)換呢?今天學習啦小編與大家分享下IP地址與物理地址轉(zhuǎn)換的解決方法,有興趣的朋友不妨了解下。
IP地址與物理地址轉(zhuǎn)換方法
ARP協(xié)議是“Address Resolution Protocol”(地址解析協(xié)議)的縮寫。在局域網(wǎng)中,網(wǎng)絡中實際傳輸?shù)氖?ldquo;幀”,幀里面是有目標主機的MAC地址的。在以太網(wǎng)中,一個主機和另一個主機進行直接通信,必須要知道目標主機的MAC地址。但這個目標MAC地址是如何獲得的呢?它就是通過地址解析協(xié)議獲得的。所謂“地址解析”就是主機在發(fā)送幀前將目標IP地址轉(zhuǎn)換成目標MAC地址的過程。ARP協(xié)議的基本功能就是通過目標設備的IP地址,查詢目標設備的MAC地址,以保證通信的順利進行。
ARP協(xié)議主要負責將局域網(wǎng)中的32位IP地址轉(zhuǎn)換為對應的48位物理地址,即網(wǎng)卡的MAC地址,比如IP地址位192.168.0.1網(wǎng)卡MAC地址為00-03-0F-FD-1D-2B.整個轉(zhuǎn)換過程是一臺主機先向目標主機發(fā)送包含有IP地址和MAC地址的數(shù)據(jù)包,通過MAC地址兩個主機就可以實現(xiàn)數(shù)據(jù)傳輸了.
IP地址與數(shù)字地址相互轉(zhuǎn)換
為什么要將IP段地址轉(zhuǎn)化成數(shù)字地址?
根據(jù)TCP/IP協(xié)議規(guī)定,IP地址是由32位二進制數(shù)組成,而且在INTERNET范圍內(nèi)是唯一的。例如,某臺聯(lián)在因特網(wǎng)上的計算機的IP地址為:
11010010 01001001 10001100 00000010
很明顯,這些數(shù)字對于人來說不太好記憶。人們?yōu)榱朔奖阌洃?,就將組成計算機的IP地址的32位二進制分成四段,每段8位,中間用小數(shù)點隔開,然后將每八位二進制轉(zhuǎn)換成十進制數(shù),這樣上述計算機的IP地址就變成了:118.123.15.102。
由于在同一個區(qū)域里,IP段都是很相近的,如果拿IP段(118.123.15.102)直接進行比較,在操作上很是麻煩,而且數(shù)據(jù)的存儲也不易實現(xiàn),所以才會把IP轉(zhuǎn)換成數(shù)字地址,再來確定IP段的物理地址。
理解了IP的概念之后,諸如IP(118.123.15.102)怎樣轉(zhuǎn)換成數(shù)字地址呢?
IP本是32為二進制,為了方便記憶才轉(zhuǎn)化成了四段十進制,所以只要把IP還原成二進制,再轉(zhuǎn)換成十進制就可以得到IP的數(shù)字地址。
.NET C# IP與數(shù)字地址相互轉(zhuǎn)化:
//IP轉(zhuǎn)換成數(shù)字地址
public static uint IPToInt(string ipAddress)
{
string disjunctiveStr = ".,: ";
char[] delimiter = disjunctiveStr.ToCharArray();
string[] startIP = null;
for (int i = 1; i <= 5; i++)
{
startIP = ipAddress.Split(delimiter, i);
}
string a1 = startIP[0].ToString();
string a2 = startIP[1].ToString();
string a3 = startIP[2].ToString();
string a4 = startIP[3].ToString();
uint U1 = uint.Parse(a1);
uint U2 = uint.Parse(a2);
uint U3 = uint.Parse(a3);
uint U4 = uint.Parse(a4);
uint U = U1 << 24;
U += U2 << 16;
U += U3 << 8;
U += U4;
return U;
}
//數(shù)字地址轉(zhuǎn)換成IP
public static string IntToIP(uint ipAddress)
{
long ui1 = ipAddress & 0xFF000000;
ui1 = ui1 >> 24;
long ui2 = ipAddress & 0x00FF0000;
ui2 = ui2 >> 16;
long ui3 = ipAddress & 0x0000FF00;
ui3 = ui3 >> 8;
long ui4 = ipAddress & 0x000000FF;
string IPstr = "";
IPstr = System.Convert.ToString(ui1) + "."
+ System.Convert.ToString(ui2) + "."
+ System.Convert.ToString(ui3)
+ "." + System.Convert.ToString(ui4);
return IPstr;
}
轉(zhuǎn)換成數(shù)字地址以后是不是查詢起來很是方便,只要介于某個IP段,就可以找出具體的物理地址了。當然,前提是有個巨大的IP庫。手頭上還有一個IP庫,大概有36W+的記錄。
IP段轉(zhuǎn)換成真實的物理地址可以用在什么地方?
用途有很多啦,
1、比如流量統(tǒng)計啦,
2、I/M聊天工具里的地理位置顯示啦,網(wǎng)頁上的地理位置顯示啦,
3、門戶網(wǎng)站有諸多城市區(qū)分的,會根據(jù)訪問者IP來判斷訪客應該去訪問哪個城市的網(wǎng)站板塊,
4、有的天氣預報網(wǎng)站,默認的就是訪客所在的城市。
看過“IP地址與物理地址怎么轉(zhuǎn)換”的人還看了: