• 大小: 49KB
    文件类型: .rar
    金币: 2
    下载: 1 次
    发布日期: 2021-06-13
  • 语言: C#
  • 标签: ip  mac  ping  

资源简介

获得局域网内IP和MAC的C#代码,通过ping测试是否存在有效ip,若存在则获取其mac地址

资源截图

代码片段和文件信息

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

using System.Net.NetworkInformation;
using System.Runtime.InteropServices;
namespace ping
{
    
    public partial class frmMain : Form
    {
        [DllImport(“ws2_32.dll“)]
        private static extern int inet_addr(string cp);
        [DllImport(“IPHLPAPI.dll“)]
        private static extern int SendARP(Int32 DestIP Int32 SrcIP ref Int64 pMacAddr ref Int32 PhyAddrLen);
        
        public frmMain()
        {
            InitializeComponent();
        }

        private void btnStart_Click(object sender EventArgs e)
        {
            txtResult.Text = ““;
            for (int i = int.Parse(txtStart.Text); i <= int.Parse(txtEnd.Text); i++)
            {
                string ipAddress = txtIpHead.Text + “.“ + i.ToString();
                Application.DoEvents();
                if (doPing(ipAddress))
                {
                    txtResult.Text =txtResult.Text+ ipAddress + “... ...    Success“+“ “+GetMacAddress(ipAddress)+“\r\n“;
                }
                else
                {
                    txtResult.Text = txtResult.Text + ipAddress + “... ...       Fail“ + “\r\n“;
                }               
            }
        }
        public bool doPing(string ipAddress)
        {
            Ping ping = new Ping();
            
            PingReply pingReply = ping.Send(ipAddress);
            if (pingReply.Status == IPStatus.Success)
            {
                return true;
            }
            else
            {
                return false;
            }  
        }

        private string GetMacAddress(string hostip)//获取远程IP(不能跨网段)的MAC地址
        {
            string Mac = ““;
            try
            {
                Int32 ldest = inet_addr(hostip); //将IP地址从 点数格式转换成无符号长整型
                Int64 macinfo = new Int64();
                Int32 len = 6;
                SendARP(ldest 0 ref macinfo ref len);
                string TmpMac = Convert.ToString(macinfo 16).PadLeft(12 ‘0‘);//转换成16进制  注意有些没有十二位
                Mac = TmpMac.Substring(0 2).ToUpper();//
                for (int i = 2; i < TmpMac.Length; i = i + 2)
                {
                    Mac = TmpMac.Substring(i 2).ToUpper() + “-“ + Mac;
                }
            }
            catch (Exception Mye)
            {
                Mac = “获取远程主机的MAC错误:“ + Mye.Message;
            }
            return Mac;
        }
    }
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        187  2018-02-05 20:57  ping\ping\App.config

     文件      10752  2018-02-05 21:42  ping\ping\bin\Debug\ping.exe

     文件        187  2018-02-05 20:57  ping\ping\bin\Debug\ping.exe.config

     文件      26112  2018-02-05 21:42  ping\ping\bin\Debug\ping.pdb

     文件      24224  2018-02-05 21:43  ping\ping\bin\Debug\ping.vshost.exe

     文件        187  2018-02-05 20:57  ping\ping\bin\Debug\ping.vshost.exe.config

     文件        490  2014-01-13 21:31  ping\ping\bin\Debug\ping.vshost.exe.manifest

     文件       2799  2018-02-05 21:42  ping\ping\frmMain.cs

     文件       5088  2018-02-05 21:42  ping\ping\frmMain.Designer.cs

     文件       5817  2018-02-05 21:42  ping\ping\frmMain.resx

     文件        865  2018-02-05 20:57  ping\ping\obj\Debug\DesignTimeResolveAssemblyReferences.cache

     文件       7051  2018-02-05 21:20  ping\ping\obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache

     文件        845  2018-02-05 21:43  ping\ping\obj\Debug\ping.csproj.FileListAbsolute.txt

     文件        979  2018-02-05 21:42  ping\ping\obj\Debug\ping.csproj.GenerateResource.Cache

     文件       2211  2018-02-05 21:05  ping\ping\obj\Debug\ping.csprojResolveAssemblyReference.cache

     文件      10752  2018-02-05 21:42  ping\ping\obj\Debug\ping.exe

     文件        180  2018-02-05 21:42  ping\ping\obj\Debug\ping.frmMain.resources

     文件      26112  2018-02-05 21:42  ping\ping\obj\Debug\ping.pdb

     文件        180  2018-02-05 21:05  ping\ping\obj\Debug\ping.Properties.Resources.resources

     文件          0  2018-02-05 20:57  ping\ping\obj\Debug\TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs

     文件          0  2018-02-05 20:57  ping\ping\obj\Debug\TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs

     文件          0  2018-02-05 20:57  ping\ping\obj\Debug\TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs

     文件       3798  2018-02-05 21:05  ping\ping\ping.csproj

     文件        518  2018-02-05 20:57  ping\ping\Program.cs

     文件       1350  2018-02-05 20:57  ping\ping\Properties\AssemblyInfo.cs

     文件       2860  2018-02-05 20:57  ping\ping\Properties\Resources.Designer.cs

     文件       5612  2018-02-05 20:57  ping\ping\Properties\Resources.resx

     文件       1091  2018-02-05 20:57  ping\ping\Properties\Settings.Designer.cs

     文件        249  2018-02-05 20:57  ping\ping\Properties\Settings.settings

     文件        981  2018-02-05 20:57  ping\ping.sln

............此处省略13个文件信息

评论

共有 条评论