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 Int32 length);
    [DllImport("Ws2_32.dll")]
    private static extern Int32 inet_addr(string ip);

    //获取本机的IP

    public string getLocalIP()
    {
        string strHostName = Dns.GetHostName(); //得到本机的主机名

        IPHostEntry ipEntry = Dns.GetHostByName(strHostName); //取得本机IP

        string strAddr = ipEntry.AddressList[0].ToString();
        return (strAddr);
    }
    //获取本机的MAC

    public string getLocalMac()
    {
        string mac = null;
        ManagementObjectSearcher query = new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapterConfiguration");
        ManagementObjectCollection queryCollection = query.Get();
        foreach (ManagementObject mo in queryCollection)
        {
            if (mo["IPEnabled"].ToString() == "True")
                mac = mo["MacAddress"].ToString();
        }
        return (mac);
    }

    //获取远程主机IP

    public string[] getRemoteIP(string RemoteHostName)
    {
        IPHostEntry ipEntry = Dns.GetHostByName(RemoteHostName);
        IPAddress[] IpAddr = ipEntry.AddressList;
        string[] strAddr = new string[IpAddr.Length];
        for (int i = 0; i < IPADDR.LENGTH; I++)
        {
            strAddr[i] = IpAddr[i].ToString();
        }
        return (strAddr);
    }
    //获取远程主机MAC

    public string 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 Convert.ToString(macinfo, 16);
        }
        catch (Exception err)
        {
            Console.WriteLine("Error:{0}", err.Message);
        }
        return 0.ToString();
    }

    public static void Main(string[] args)
    {
        getIP gi = new getIP();
        Console.WriteLine("本地网卡信息:");
        Console.WriteLine(gi.getLocalIP() + " - " + gi.getLocalMac());

        Console.WriteLine("\n\r远程网卡信息:");
        string[] temp = gi.getRemoteIP("scmobile-tj2");
        for (int i = 0; i < TEMP.LENGTH; I++)
        {
            Console.WriteLine(temp[i]);
        }
        Console.WriteLine(gi.getRemoteMac("192.168.0.3", "192.168.0.1"));
    }
}
时间: 2024-08-05 06:33:18

C#获取IP及MAC地址 方法的相关文章

Android -- 获取IP和MAC地址

通过InetAddress.getLocalHost()得到始终是"127.0.0.1",要想得到真正的网络ip地址要通过下面的方法: 首先新建一个工程,修改AndroidManifest.xml文件增加用户权限,如下: <uses-permission android:name="android.permission.INTERNET"/> <!--必写--> <uses-permission android:name="a

获取IP和mac地址

1.获取IP static string GetLocalIp() { string hostname = Dns.GetHostName();//得到本机名 //IPHostEntry localhost = Dns.GetHostByName(hostname);//方法已过期,只得到IPv4的地址 IPHostEntry localhost = Dns.GetHostEntry(hostname); IPAddress localaddr = localhost.AddressList[0

[记]Linux 获取本机(全部)IP、MAC地址方法 (C/C++)

Linux 获取本机IP.MAC地址用法大全 1 2 //#include <sys/types.h> 3 #include <ifaddrs.h> 4 #include <sys/ioctl.h> 5 #include <net/if.h> 6 #include <string.h> 7 #include <stdio.h> 8 #include <unistd.h> 9 #include <netdb.h>

.net获取IP和MAC地址

获取IP  解决request.UserHostAddress取不到真实IP private string GetClientIP()   {    string result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];    if (null == result || result == String.Empty)    {     result = HttpContext.Curren

js获取IP和MAC地址

1.IP 百度一下有很多 可以用这个 <script src="http://pv.sohu.com/cityjson?ie=utf-8"></script> <script type="text/javascript"> document.write(returnCitySN["cip"]+','+returnCitySN["cname"]) </script> returnC

获取本机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

C# 获取本机mac地址 客户端主机名称(hostName) 当前用户(CurWinUser) 操作系统版本(WinVersion) IE浏览器版本(IEversion) 物理内存(Memory) 跳至网关的IP地址(IpAddress) CPU序列号 等等

关于获取本机信息的代码,园子里面还是非常多的,专门整理了一下此次用到的信息 首先,获取跳至网管的IP地址 #region 获取调至网管的IP地址 string ipAddress = GetLocalIp(); #endregion ///此方法需要计算机连网,否则获取不到IP地址 private string GetLocalIp() { string result = RunApp("route", "print", true); Match m = Regex

根据IP地址获取用户的mac地址

根据实际需要可以使用以下的代码 获取MAC地址. /**  * 根据IP地址获取mac地址  * @param ipAddress 127.0.0.1  * @return  * @throws SocketException  * @throws UnknownHostException  */ public static String getLocalMac(String ipAddress) throws SocketException, UnknownHostException { //

Linux 获取本机IP、MAC地址用法大全

getifaddrs()和struct ifaddrs的使用,获取本机IP ifaddrs结构体定义如下: C代码   struct ifaddrs { struct ifaddrs  *ifa_next;    /* Next item in list */ char            *ifa_name;    /* Name of interface */ unsigned int     ifa_flags;   /* Flags from SIOCGIFFLAGS */ struc