主题:[原创]C#中获取本地计算机的的计算机名,IP和MAC地址-----源程序.
wtw102
[专家分:470] 发布于 2005-04-27 21:12:00
这是我最近用C#写一个获取本地计算机的的计算机名,IP和MAC地址的源代码.
(本程序调试通过)
注:调试时要添加Management这个引用(方法为:项目-->添加引用..-->先择System.Management ).
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);
(接下一贴)
回复列表 (共10个回复)
沙发
wtw102 [专家分:470] 发布于 2005-04-22 22:15:00
//
// 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();
}
}
}
(本程序供大家参考)
本来想把通过计算机名或IP来获取局域网的IP或计算机名的功能加进来的,由于时间关系现在还没写出来.
板凳
wtw102 [专家分:470] 发布于 2005-04-23 00:54:00
http://www.eimhe.com/bbs/get.php?id=62889
国内最多的(计算机视频教学)资料免费下载(有C#,C,C++,.NET等等)
3 楼
雪人 [专家分:10] 发布于 2005-04-24 12:42:00
谢谢~~~
4 楼
wtw305 [专家分:70] 发布于 2005-05-13 15:44:00
谢谢,我做了还不错
5 楼
wtw102 [专家分:470] 发布于 2005-05-14 21:18:00
我现在也发到了我的BLOG欢迎大家光临我的BLOG
http://0597.programfan.com
也可到这直接下载
http://www.programfan.com/wysoft/showwysoft.asp?id=910
6 楼
hornen [专家分:40] 发布于 2005-05-15 18:12:00
只能获取本机的,那要是想取得网上邻居的怎么办!
7 楼
wtw102 [专家分:470] 发布于 2005-05-19 22:42:00
在我的BLOG里看我那有一个文章关于获取远程计算机IP,MAC地址的的C#代码
我的BLOG
http://0597.programfan.com
8 楼
wtw102 [专家分:470] 发布于 2005-05-19 22:57:00
如果在什么地方有什么不足的请各位programLove提出宝贵的建议.我会把它完善的.
上面是我在现在在开发一个局网管理系统的一个小小的测试,等我写完整个系统写完后我会把全部代码拿出来共享.
9 楼
七月飞扬 [专家分:20] 发布于 2005-11-25 21:39:00
我试了,挺简单的,是操作挺简单的,复制添加运行,就OK了,呵呵,我会好好保存这份程序的,一定好好借鉴一下,对了,MAC什么意思阿
10 楼
huyejun [专家分:150] 发布于 2005-11-25 23:01:00
mac就是你的网卡的物理地址
我来回复