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