欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【asp.net 获取客户端IP与mac】,下面是详细的分享!
asp.net 获取客户端IP与mac
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=http://www.chinaz.com/program/2008/1124/macinfo.ToString("X");
if(mac_src=http://www.chinaz.com/program/2008/1124/="0")
{
if(userip=="127.0.0.1")
Response.Write ("正在访问Localhost!");
else
Response.Write ("欢迎来自IP为" + userip + "的朋友!" + "
");
return;
}
while(mac_src.Length<12)
{
mac_src=http://www.chinaz.com/program/2008/1124/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));
}
}
}
//方法二
using System.Text.RegularExpressions;
using System.Diagnostics;
public class test
{
public test
{}
public static string GetCustomerMac(string IP) //para IP is the client's IP
{
string dirResults="";
ProcessStartInfo psi =new ProcessStartInfo();
Process proc=new Process();
psi.FileName="nbtstat";
psi.RedirectStandardInput=false;
psi.RedirectStandardOutput=true;
psi.Arguments="-A " + IP;
psi.UseShellExecute=false;
proc=Process.Start(psi);
dirResults=proc.StandardOutput.ReadToEnd();
proc.WaitForExit();
dirResults=dirResults.Replace("\r","").Replace("\n","").Replace("\t","");
Regex reg=new Regex("Mac[ ]{0,}Address[ ]{0,}=[ ]{0,}(?((.)*?)) __MAC",RegexOptions.IgnoreCase|RegexOptions.Compiled);
Match mc=reg.Match(dirResults+"__MAC");
if(mc.Success)
{
return mc.Groups["key"].Value;
}
else
{
reg=new Regex("Host not found",RegexOptions.IgnoreCase|RegexOptions.Compiled);
mc=reg.Match(dirResults);
if(mc.Success)
{
return "Host not found!";
}
else
{
return "";
}
}
}
}
这种方法有些地方得好好摸索,不然看不懂的
//
获取服务器的IP地址方法以DNS法较为简单实用,如下:
using System.Net;
private void ButtonIP_Click(object sender, System.EventArgs e)
{
System.Net.IPAddress[] addressList=Dns.GetHostByName(Dns.GetHostName()).AddressList;
if ( addressList.Length>1)
{ TextLIP.Text=addressList[0].ToString();
TextSIP.Text=addressList[1].ToString();
}
else
{
TextLIP.Text=addressList[0].ToString();
TextSIP.Text="没有可用的连接";
}
}
| 以下为引用的内容:
using System.Management; |
获取客户端本机的IP地址相当简易,方法如下:
| 以下为引用的内容:
using System.Net; |
如要获取客户端本机的MAC地址就相对复杂些,得导入调用两个API,用ARP协议获取,但这样只能获取到同网段机器的MAC,对于跨网段的得利用IP扫描或cmd中nbtstat命令获取MAC地址。也可通过读取系统注册表值或WMI的数据库来获取。
以上所分享的是关于asp.net 获取客户端IP与mac,下面是编辑为你推荐的有价值的用户互动:
相关问题:asp.net如何获取服务器ip与mac地址
答:复制代码 代码示例:private void ButtonIP_Click(object sender, System.EventArgs e){ System.Net.IPAddress[] addressList = Dns.GetHostByName(Dns.GetHostName()).AddressList;if ( addressList.Length>1){ TextLIP.Text = addressList[0].T... >>详细
相关问题:ASP中获得客户端MAC地址
答:很简单取得对方IP后,将其传入下面函数GetMACAddress即可得到string类型的MAC地址: 3 Then GetMACAddress = "无效的IP地址" Exit Function End If If IsNumeric(aIP(x)) = False Then GetMACAddress = "无效的IP地址" Exit Function End If If In... >>详细
相关问题:ASP.NET如何获取客户端MAC地址?+急 !!
答:服务器和客户端是通过HTTP协议联系的,服务器能够获取到的信息基本也只有HTTP Header中的信息 MAC地址这是个底层的东西,一般获取不到的。 真想获取的话,一个思路,做个客户端程序(比如ActiveX控件之类的,但我没试过不敢保证一定获取得到)给... >>详细
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
