ASPNET獲取IP地址 MAC地址
ASP.NET獲取客戶端IP/使用者名稱等資訊
1. 在ASP.NET中專用屬性:
獲取伺服器電腦名:Page.Server.ManchineName
獲取使用者資訊:Page.User
獲取客戶端電腦名:Page.Request.UserHostName
獲取客戶端電腦IP:Page.Request.UserHostAddress
2. 在網路程式設計中的通用方法:
獲取當前電腦名:static System.Net.Dns.GetHostName()
根據電腦名取出全部IP地址:static System.Net.Dns.Resolve(電腦名).AddressList
也可根據IP地址取出電腦名:static System.Net.Dns.Resolve(IP地址).HostName
3. 系統環境類的通用屬性:
當前電腦名:static System.Environment.MachineName
當前電腦所屬網域:static System.Environment.UserDomainName
當前電腦使用者:static System.Environment.UserName
獲取客戶端IP:
private string GetClientIP()
{
string result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (null == result || result == String.Empty)
{
result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
}
if (null == result || result == String.Empty)
{
result = HttpContext.Current.Request.UserHostAddress;
}
return result;
}
獲取MAC地址:
using System.Runtime.InteropServices;
[DllImport("Iphlpapi.dll")]
private static extern int SendARP(Int32 dest,Int32 host,ref Int64 mac,ref Int32 length);
[DllImport("Ws2_32.dll")]
private static extern Int32 inet_addr(string ip);
private void Page_Load(object sender, System.EventArgs e)
{
// 在此處放置使用者程式碼以初始化頁面
try
{
string userip=Request.UserHostAddress;
string strClientIP = Request.UserHostAddress.ToString().Trim();
Int32 ldest = inet_addr(strClientIP); //目的地的ip
Int32 lhost = inet_addr(""); //本地伺服器的ip
Int64 macinfo = new Int64();
Int32 len = 6;
int res = SendARP(ldest,0, ref macinfo, ref len);
string mac_src=macinfo.ToString("X");
if(mac_src == "0")
{
if(userip=="127.0.0.1")
Response.Write ("正在訪問Localhost!");
else
Response.Write ("歡迎來自IP為" + userip + "的朋友!" + "
");
return;
}
while(mac_src.Length<12)
{
mac_src = mac_src.Insert(0,"0");
}
string mac_dest="";
for(int i=0;i<11;i++)
{
if (0 == (i % 2))
{
if ( i == 10 )
{
mac_dest = mac_dest.Insert(0,mac_src.Substring(i,2));
}
else
{
mac_dest ="-" + mac_dest.Insert(0,mac_src.Substring(i,2));
}
}
}
Response.Write ("歡迎來自IP為"+userip+ "
" + ",MAC地址為"+mac_dest+"的朋友!"
+ "
");
}
catch(Exception err)
{
Response.Write(err.Message);
}
}
IP=Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If IP = "" Then IP=Request.ServerVariables("REMOTE_ADDR")
info=request.servervariables("http_user_agent")
response.cookies("buyok_user_ip")=ip
請教各位高手以上ASP程式碼是什麼意思啊?
如果客戶端使用了代理伺服器,使用Request.ServerVariables("HTTP_X_FORWARDED_FOR") 得到IP地址,如果沒用使用代理伺服器,得到的是"",則用Request.ServerVariables("REMOTE_ADDR") 得到IP地址.
request.servervariables("http_user_agent") 得到使用者HTTP裝置的變數,如:你使用的IE瀏覽器版本,還有你的機器名和作業系統......
response.cookies("buyok_user_ip")=ip 是將得到的IP用Cookies物件寫入客戶端(變數名取為"buyok_user_ip")
《HTTP_X_FORWARDED_FOR & REMOTE_ADDR》
在 ASP 中使用 Request.ServerVariables("REMOTE_ADDR") 來取得客戶端的 IP 地址,但如果客戶端是使用代理伺服器來訪問,那取到的就是代理伺服器的 IP 地址,而不是真正的客戶端 IP 地址。要想透過代理伺服器取得客戶端的真實 IP 地址,就要使用 Request.ServerVariables("HTTP_X_FORWARDED_FOR") 來讀取。
不過要注意的事,並不是每個代理伺服器都能用 Request.ServerVariables("HTTP_X_FORWARDED_FOR") 來讀取客戶端的真實 IP,有些用此方法讀取到的仍然是代理伺服器的 IP。
還有一點需要注意的是:如果客戶端沒有透過代理伺服器來訪問,那麼用Request.ServerVariables ("HTTP_X_FORWARDED_FOR") 取到的值將是空的。因此,如果要在程式中使用此方法,可以這樣處理:
......
userip = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If userip = "" Then userip = Request.ServerVariables("REMOTE_ADDR")
......
即:如果客戶端透過代理伺服器,則取 HTTP_X_FORWARDED_FOR 的值,如果沒透過代理伺服器,就取 REMOTE_ADDR 的值。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/13923422/viewspace-364575/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- java獲取ip地址和mac地址JavaMac
- Java 中獲取MAC地址 和IP地址JavaMac
- 最簡單的C# 獲取 MAC 地址 IP 地址C#Mac
- Java獲取本機名稱、本機MAC地址、IP地址JavaMac
- saltstack獲取IP地址
- 獲取IP地址方法
- 獲取IP地址命令
- android 獲取裝置IP和Mac地址AndroidMac
- 美國ip地址如何獲取?
- 獲取真實IP地址
- MAC 地址與IP地址Mac
- 如何獲取海外住宅IP地址?
- jQuery獲取本機ip地址jQuery
- Java獲取本機ip地址Java
- ASP.NET獲取客戶端IP及MAC地址ASP.NET客戶端Mac
- PHP獲取IP地址的方法,防止偽造IP地址注入攻擊PHP
- java獲取本機的ip地址Java
- Apapche獲取真實IP地址方法
- 獲取本地的IP地址(內網)內網
- DHCP獲取IP地址的過程
- Oracle獲取連線的IP地址Oracle
- Python 基礎練習 —— 獲取本機 Mac 地址、ip 地址和主機名PythonMac
- 獲取客戶端Mac地址客戶端Mac
- php怎麼獲取mac地址?PHPMac
- 獲取IP地址的途徑有哪些?要如何保護IP地址不被竊取?
- JSF/JAVA 根據IP獲取客戶端Mac地址JSJava客戶端Mac
- python獲取本機IP、mac地址、計算機名PythonMac計算機
- 什麼是自動獲取IP地址
- 如何設定自動獲取ip地址
- [Q]怎麼樣獲取IP地址zt
- 如何使用 Go 獲取你的 IP 地址Go
- Android下如何獲取Mac地址?AndroidMac
- 蘋果電腦如何獲取mac地址蘋果Mac
- IP地址和MAC地址的關係Mac
- w10如何設定自動獲取ip地址_w10怎麼自動獲取ip地址
- qt獲取本機IP地址、計算機名、網路連線名、MAC地址、子網掩碼、廣播地址QT計算機Mac
- Oracle中獲取主機名和IP地址Oracle
- SQL解惑-如何從字串中獲取IP地址SQL字串