C# 获取本地IP地址以及MAC地址

2009年4月27日星期一

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地址

public static string 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>

     public class 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>

         protected override void Dispose( bool disposing )

         {

             if( disposing )

             {

                 if (components != null)

                 {

                     components.Dispose();

                 }

             }

             base.Dispose( disposing );

         }



         #region Windows 窗体设计器生成的代码

         /// <summary>

         /// 设计器支持所需的方法 - 不要使用代码编辑器修改

         /// 此方法的内容。

         /// </summary>

         private void InitializeComponent()

         {

             this.label4 = new System.Windows.Forms.Label();

             this.groupBox1 = new System.Windows.Forms.GroupBox();

             this.button2 = new System.Windows.Forms.Button();

             this.txtMac = new System.Windows.Forms.TextBox();

             this.txtIp = new System.Windows.Forms.TextBox();

             this.txtName = new System.Windows.Forms.TextBox();

             this.lblMac = new System.Windows.Forms.Label();

             this.lblIp = new System.Windows.Forms.Label();

             this.lblName = new System.Windows.Forms.Label();

             this.button1 = new System.Windows.Forms.Button();

             this.groupBox1.SuspendLayout();

             this.SuspendLayout();

             //

             // label4

             //

             this.label4.AutoSize = true;

             this.label4.Font = new System.Drawing.Font("楷体_GB2312", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134)));

             this.label4.ForeColor = System.Drawing.Color.FromArgb(((System.Byte)(255)), ((System.Byte)(128)), ((System.Byte)(128)));

             this.label4.Location = new System.Drawing.Point(49, 16);

             this.label4.Name = "label4";

             this.label4.Size = new System.Drawing.Size(245, 26);

             this.label4.TabIndex = 7;

             this.label4.Text = "获取本机计算机名IP与MAC";

             //

             // groupBox1

             //

             this.groupBox1.Controls.Add(this.button2);

             this.groupBox1.Controls.Add(this.txtMac);

             this.groupBox1.Controls.Add(this.txtIp);

             this.groupBox1.Controls.Add(this.txtName);

             this.groupBox1.Controls.Add(this.lblMac);

             this.groupBox1.Controls.Add(this.lblIp);

             this.groupBox1.Controls.Add(this.lblName);

             this.groupBox1.Controls.Add(this.button1);

             this.groupBox1.Location = new System.Drawing.Point(16, 56);

             this.groupBox1.Name = "groupBox1";

             this.groupBox1.Size = new System.Drawing.Size(320, 208);

             this.groupBox1.TabIndex = 11;

             this.groupBox1.TabStop = false;

             this.groupBox1.Text = "获取区";

             //

             // button2

             //

             this.button2.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134)));

             this.button2.Location = new System.Drawing.Point(184, 160);

             this.button2.Name = "button2";

             this.button2.Size = new System.Drawing.Size(88, 32);

             this.button2.TabIndex = 18;

             this.button2.Text = "退出";

             this.button2.Click += new System.EventHandler(this.button2_Click);

             //

             // txtMac

             //

             this.txtMac.BackColor = System.Drawing.Color.FromArgb(((System.Byte)(224)), ((System.Byte)(224)), ((System.Byte)(224)));

             this.txtMac.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134)));

             this.txtMac.ForeColor = System.Drawing.Color.FromArgb(((System.Byte)(255)), ((System.Byte)(128)), ((System.Byte)(0)));

             this.txtMac.Location = new System.Drawing.Point(128, 110);

             this.txtMac.Name = "txtMac";

             this.txtMac.ReadOnly = true;

             this.txtMac.Size = new System.Drawing.Size(168, 21);

             this.txtMac.TabIndex = 17;

             this.txtMac.Text = "";

             //

             // txtIp

             //

             this.txtIp.BackColor = System.Drawing.Color.FromArgb(((System.Byte)(224)), ((System.Byte)(224)), ((System.Byte)(224)));

             this.txtIp.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134)));

             this.txtIp.ForeColor = System.Drawing.Color.FromArgb(((System.Byte)(255)), ((System.Byte)(128)), ((System.Byte)(0)));

             this.txtIp.Location = new System.Drawing.Point(128, 70);

             this.txtIp.Name = "txtIp";

             this.txtIp.ReadOnly = true;

             this.txtIp.Size = new System.Drawing.Size(168, 21);

             this.txtIp.TabIndex = 16;

             this.txtIp.Text = "";

             //

             // txtName

             //

             this.txtName.BackColor = System.Drawing.Color.FromArgb(((System.Byte)(224)), ((System.Byte)(224)), ((System.Byte)(224)));

             this.txtName.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134)));

             this.txtName.ForeColor = System.Drawing.Color.FromArgb(((System.Byte)(255)), ((System.Byte)(128)), ((System.Byte)(0)));

             this.txtName.Location = new System.Drawing.Point(128, 30);

             this.txtName.Name = "txtName";

             this.txtName.ReadOnly = true;

             this.txtName.Size = new System.Drawing.Size(168, 21);

             this.txtName.TabIndex = 15;

             this.txtName.Text = "";

             //

             // lblMac

             //

             this.lblMac.AutoSize = true;

             this.lblMac.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134)));

             this.lblMac.ForeColor = System.Drawing.Color.FromArgb(((System.Byte)(0)), ((System.Byte)(0)), ((System.Byte)(64)));

             this.lblMac.Location = new System.Drawing.Point(32, 112);

             this.lblMac.Name = "lblMac";

             this.lblMac.Size = new System.Drawing.Size(88, 22);

             this.lblMac.TabIndex = 14;

             this.lblMac.Text = "MAC地址为:";

             //

             // lblIp

             //

             this.lblIp.AutoSize = true;

             this.lblIp.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134)));

             this.lblIp.ForeColor = System.Drawing.Color.FromArgb(((System.Byte)(0)), ((System.Byte)(0)), ((System.Byte)(64)));

             this.lblIp.Location = new System.Drawing.Point(40, 72);

             this.lblIp.Name = "lblIp";

             this.lblIp.Size = new System.Drawing.Size(80, 22);

             this.lblIp.TabIndex = 13;

             this.lblIp.Text = "IP地址为:";

             //

             // lblName

             //

             this.lblName.AutoSize = true;

             this.lblName.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134)));

             this.lblName.ForeColor = System.Drawing.Color.FromArgb(((System.Byte)(0)), ((System.Byte)(0)), ((System.Byte)(64)));

             this.lblName.Location = new System.Drawing.Point(24, 32);

             this.lblName.Name = "lblName";

             this.lblName.Size = new System.Drawing.Size(97, 22);

             this.lblName.TabIndex = 12;

             this.lblName.Text = "计算机名为:";

             //

             // button1

             //

             this.button1.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134)));

             this.button1.Location = new System.Drawing.Point(48, 160);

             this.button1.Name = "button1";

             this.button1.Size = new System.Drawing.Size(88, 32);

             this.button1.TabIndex = 11;

             this.button1.Text = "点击获取";

             this.button1.Click += new System.EventHandler(this.button1_Click_1);

             //

             // Form1

             //

             this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);

             this.ClientSize = new System.Drawing.Size(352, 285);

             this.Controls.Add(this.groupBox1);

             this.Controls.Add(this.label4);

             this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D;

             this.MaximizeBox = false;

             this.Name = "Form1";

             this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;

             this.Text = "IP,计算机名,MAC查询";

             this.groupBox1.ResumeLayout(false);

             this.ResumeLayout(false);



         }

         #endregion



         /// <summary>

         /// 应用程序的主入口点。

         /// </summary>

         [STAThread]

         static void Main()

         {

             Application.Run(new Form1());

         }



         private void 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();



         }



         private void button2_Click(object sender, System.EventArgs e)

         {

             Application.Exit();

         }

     }

}


0 评论:

发表评论