C# 获取本地IP客户端IP地址以及MAC地址

--------------获得客户端IP

   /// <summary>
        /// 获取客户端IP
        /// </summary>
        /// <returns></returns>
        public static 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;
        }


C# 获取本地IP地址以及MAC地址
1、通过主机名获取局域网IP地址;
try
{
IPHostEntry ipHostEntry
= Dns.GetHostEntry(txtHost.Text);//传递计算机名
if (ipHostEntry.Aliases.Length >0)
{
foreach (string alias in ipHostEntry.Aliases)
txtIP.Text
= alias;
}
//获取IP地址
foreach (IPAddress addr in ipHostEntry.AddressList)
txtIPAddress.Text
= addr.ToString();//获取IP地址
}
catch
{
MessageBox.Show(
"错误的主机名。");
}
2、通过局域网IP地址获取主机名;
try
{
IPHostEntry ipHostEntry
= Dns.GetHostByAddress(txtIP.Text); ;//传递IP地址
txtHostName.Text = ipHostEntry.HostName.ToString()//取得主机名
}
catch
{
MessageBox.Show(
"错误的IP地址。");
}
3、通过局域网IP地址获取Mac地址
publicstaticstring ReadMac(string ip)//传递IP地址,即可返回MAC地址
{
string mac ="";
System.Diagnostics.Process p
=new System.Diagnostics.Process();
p.StartInfo.FileName
="nbtstat";
p.StartInfo.Arguments
="-a "+ ip;
p.StartInfo.UseShellExecute
=false;
p.StartInfo.CreateNoWindow
=true;
p.StartInfo.RedirectStandardOutput
=true;
p.Start();
string output = p.StandardOutput.ReadToEnd();
int len = output.IndexOf("MAC Address = ");
if(len>0)
{
mac
= output.Substring(len +14, 17);
}
p.WaitForExit();
return mac;
}



C#获取本地计算机名,IP,MAC地址

using System;
using System.Drawing;
using System.Management;
using System.net;
using System.Net.Sockets;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;

namespace MAC_IP_name
{
///<summary>
/// Form1 的摘要说明。
///</summary>
publicclass Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.Label label4;
private System.Windows.Forms.GrouPBox groupBox1;
private System.Windows.Forms.TextBox txtMac;
private System.Windows.Forms.TextBox txtIp;
private System.Windows.Forms.TextBox txtName;
private System.Windows.Forms.Label lblMac;
private System.Windows.Forms.Label lblIp;
private System.Windows.Forms.Label lblName;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Button button2;
///<summary>
/// 必需的设计器变量。
///</summary>
private System.ComponentModel.Container components =null;

public Form1()
{
//
// Windows 窗体设计器支持所必需的
//
InitializeComponent();

//
// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
//
}

///<summary>
/// 清理所有正在使用的资源。
///</summary>
protectedoverridevoid Dispose( bool disposing )
{
if( disposing )
{
if (components !=null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}

///<summary>
/// 应用程序的主入口点。
///</summary>
[STAThread]
staticvoid Main()
{
Application.Run(
new Form1());
}

privatevoid button1_Click_1(object sender, System.EventArgs e)
{
string s="",mac="";
//
//name
//
string hostInfo = Dns.GetHostName();

//
//IP
System.Net.IPAddress[] addressList = Dns.GetHostByName(Dns.GetHostName()).AddressList;
for (int i =0; i < addressList.Length; i ++)
{
s
+= addressList[i].ToString();
}
//
//mac
//


ManagementClass mc;
mc
=new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc
=mc.GetInstances();
foreach(ManagementObject mo in moc)
{
if(mo["IPEnabled"].ToString()=="True")
mac
=mo["MacAddress"].ToString();
}


txtName.Text
=hostInfo;
txtIp.Text
=s;
txtMac.Text
=mac;


button1.Enabled
=false;
button2.Focus();

}

privatevoid button2_Click(object sender, System.EventArgs e)
{
Application.Exit();
}
}
}
posted @ 2011-05-30 10:22  阿凌  阅读(1337)  评论(0编辑  收藏  举报