using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Management;
using System.Runtime.InteropServices;
namespace Web1
{
/// <summary>
/// WebForm1 的摘要说明。
/// </summary>
public delegate string getString();
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Label Label2;
protected System.Web.UI.WebControls.Label Label1;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
string userIP;
HttpRequest Request = HttpContext.Current.Request;
if (Request.ServerVariables["HTTP_X_FORWARDED_FOR"] !=null)
{userIP = Request.ServerVariables["REMOTE_ADDR"];}
else
{userIP = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];}
if (userIP == null || userIP == "")
userIP = Request.UserHostAddress;
//this.Label1.Text=userIP;
// this.Label1.Text=System.Net.Dns.GetHostName();
// System.Net.IPAddress addr= new System.Net.IPAddress ( System.Net.Dns.GetHostByName (System.Net.Dns.GetHostName ( ) ) .AddressList [0].Address ) ;
// this.Label1.Text=addr.ToString();
string x="sdfsdf";
getString get1=new getString(x.ToString);
this.Label1.Text=get1();
this.Label2.Text=this.GetMacAddress();
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
public string GetMacAddress()
{
ManagementClass adapters = new
ManagementClass("Win32_NetworkAdapterConfiguration");
string MACAddress = "unknown";
foreach (ManagementObject adapter in adapters.GetInstances())
{
if((bool)adapter["IPEnabled"] == true)
{
MACAddress = adapter.Properties["MACAddress"].Value.ToString();
break;
}
}
return MACAddress;
}
[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);
static private Int64 getRemoteMAC(string localIP, string remoteIP)
{
Int32 ldest= inet_addr(remoteIP); //目的地的ip
Int32 lhost= inet_addr(localIP); //本地服务器的ip
try
{
Int64 macinfo = new Int64();
Int32 len = 6;
int res = SendARP(ldest,0, ref macinfo, ref len);
return macinfo;
}
catch(Exception err)
{
Console.WriteLine("Error:{0}",err.Message);
}
return 0;
}
}
}
评论