資源簡介
獲得局域網內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?????????????????{
????????????????????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個文件信息
- 上一篇:WinForm復制粘貼圖片
- 下一篇:C#做的SMTP郵件收發程序
評論
共有 條評論