获取局域网计算机名以及IP以及mac地址

 void GetAll()
        {
            IDictionary<string, string> hostList = new Dictionary<string, string>();
            DirectoryEntry MainGroup = new DirectoryEntry("WinNT:");
            foreach (DirectoryEntry domain in MainGroup.Children)
            {
                foreach (DirectoryEntry pc in domain.Children)
                {
                    try
                    {
                        System.Net.IPAddress[] remoteHost = Dns.GetHostAddresses(pc.Name);
                        hostList.Add(pc.Name, remoteHost[0].ToString());
                    }
                    catch { }
                }
            }
            using (StreamWriter sw = new StreamWriter("c:\\pp.txt", true))
            {
                foreach (KeyValuePair<string, string> child in hostList)
                {
                    sw.WriteLine(Environment.NewLine + "name:" + child.Key + "  ip:" + child.Value);
                }
                sw.Flush();
                sw.Close();
            }
        }

以上把局域网的计算机以及IP保存到c盘

再根据ip地址获取mac地址

 public string GetMac(string 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,}(?<key>((.)*?))__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 ""; }
            }
        }

需要的稍作更改即可使用

时间: 2024-10-10 11:33:20

获取局域网计算机名以及IP以及mac地址的相关文章

java获取本机名称、IP、MAC地址和网卡名称

java获取本机名称.IP.MAC地址和网卡名称 摘自:https://blog.csdn.net/Dai_Haijiao/article/details/80364370 2018年05月18日 14:53:19 阅读数:134 import java.net.InetAddress; import java.net.NetworkInterface; public class IpConfig { @SuppressWarnings("static-access") public

Android获取Ethernet、WIFI的ip和mac地址

/**  * 获取本地ip  * @return  */ private String getLocalIpAddress() { try { String ipv4 = null; List<NetworkInterface> nilist = Collections.list(NetworkInterface.getNetworkInterfaces()); for (NetworkInterface ni : nilist) { List<InetAddress> ialis

获取本地计算机名和IP地址

WSADATA wsadata; if(0 != WSAStartup(MAKEWORD(2, 2), &wsadata)) { AfxMessageBox("初始化网络环境失败!"); return TRUE; } char szHostName[MAX_PATH + 1]; gethostname(szHostName, MAX_PATH); hostent *p = gethostbyname(szHostName); if(p == NULL) { AfxMessage

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

using System; using System.Data; using System.Configuration; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebPa

获取本机IP、mac地址、计算机名

python获取本机IP.mac地址.计算机名 在python中获取ip地址和在php中有很大不同,我们先来看一下python 获得本机MAC地址: >>> import uuid >>> def get_mac_address(): mac = uuid.UUID(int = uuid.getnode()).hex[-12:] return ':'.join([mac[e:e+2] for e in range(0,11,2)]) >>> get_m

查看局域网其它电脑的计算机名和IP

一.下面脚本可查看局域网中的电脑计算机名和IP,保存下面文本至记事本.后缀改成bat COLOR 0A CLS @ECHO Off Title 查询局域网内在线电脑IP :send @ECHO off&setlocal enabledelayedexpansion ECHO 正在获取本机的IP地址.请稍等... for /f "tokens=3 skip=2 delims=: " %%i in ('nbtstat -n') do ( set "IP=%%i"

查看局域网其他电脑的计算机名和IP

一.以下脚本可查看局域网中的电脑计算机名和IP,保存以下文本至记事本,后缀改成bat COLOR 0A CLS @ECHO Off Title 查询局域网内在线电脑IP :send @ECHO off&setlocal enabledelayedexpansion ECHO 正在获取本机的IP地址,请稍等... for /f "tokens=3 skip=2 delims=: " %%i in ('nbtstat -n') do ( set "IP=%%i"

局域网内计算机名查IP

1 计算机名查IP 首先是显示远程计算机的 NetBIOS 名称表:nbtstat -a  计算机名 接着就可以显示 NetBIOS 名称缓存内容.NetBIOS 名称表及其解析的各个地址:nbtstat -c 具体操作如下: 2 IP地址查计算机名 显示远程计算机的 NetBIOS 名称表,其名称由远程计算机的 IP 地址指定(以小数点分隔):nbtstat -A IP地址 接着就可以显示 NetBIOS 名称缓存内容.NetBIOS 名称表及其解析的各个地址:nbtstat -c 具体操作如

C#获取IP及MAC地址 方法

C#获取IP及MAC地址 方法,比较齐全 using System.Net; using System; using System.Management; using System.Runtime.InteropServices; public class getIP { [DllImport("Iphlpapi.dll")] private static extern int SendARP(Int32 dest, Int32 host, ref Int64 mac, ref Int