C# 현재 연결되어 있는 IP주소와 MAC주소 가져오기


 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Diagnostics;
using System.Text.RegularExpressions;
using System.Net;
using System.Management;


// http://www.maniuk.net/2016/08/get-ip-address-by-mac-address-in-csharp.html //
namespace TestUSB_Ver2
{
    class Netinfo // IP주소와 MAC주소 가져오기 
    {
        
        public void main(object Main_Net_inter) //메인 호출 
        {
            DataGridView Net_inter = Main_Net_inter as DataGridView;
            Net_inter.Rows.Clear();

            IPHostEntry GetIP= Dns.GetHostEntry(Dns.GetHostName());

            string ipAddr = string.Empty;

            int Net_index = 1;

            for(int i = 0; i < GetIP.AddressList.Length; i++)
            {
                if(GetIP.AddressList[i].AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)  // IPv4에 해당하면 출력
                {
                    ipAddr = GetIP.AddressList[i].ToString(); // IPv4에 해당되는 IP 

                    Netinfo Mac = new Netinfo(); // 해당 IP에 대응되는 MAC 가져오기 
                    Net_inter.Rows.Add(Net_index, ipAddr, Mac.GetMac(ipAddr)); // DataGridView 출력  

                    Net_index++;
                }
            }
        }

        public string GetMac(string ip)   // MAC가져오는 메소드 
        {
            string rtn = string.Empty;
            ObjectQuery oq = new System.Management.ObjectQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled='TRUE'");
            ManagementObjectSearcher query1 = new ManagementObjectSearcher(oq);
            foreach (ManagementObject mo in query1.Get())
            {
                string[] address = (string[])mo["IPAddress"];
                if (address[0] == ip && mo["MACAddress"] != null)
                {
                    rtn = mo["MACAddress"].ToString();
                    break;
                }
            }
            return rtn;
        }
    }


 

Window forms에서 DataGridView로 IP주소와 그에 맞는 MAC주소를 가져온다.



+ Recent posts