获取计算机IP地址和主机名及MAC地址

合集下载

电脑mac地址查询方法

电脑mac地址查询方法

电脑mac地址查询方法电脑MAC地址查询方法。

在网络世界中,MAC地址是一种用来标识网络设备的唯一标识符。

它类似于身份证号码,每台设备都有自己独一无二的MAC地址。

在某些情况下,我们可能需要查询电脑的MAC地址,比如进行网络设置、网络安全等。

那么,接下来就让我们来了解一下电脑MAC地址的查询方法吧。

对于Windows操作系统的用户,查询电脑的MAC地址非常简单。

首先,我们需要打开命令提示符。

方法是按下Win+R组合键,输入cmd并按下回车键。

接着,在命令提示符窗口中输入“ipconfig /all”命令,然后按下回车键。

在输出的信息中,可以找到“物理地址”一栏,这就是我们需要的MAC地址了。

而对于Mac操作系统的用户,查询MAC地址同样也很容易。

首先,我们需要打开“系统偏好设置”,然后点击“网络”选项。

接着,在左侧的网络连接列表中选择需要查询MAC地址的连接,比如Wi-Fi或者以太网。

然后点击“高级”按钮,在弹出的窗口中选择“硬件”,这里就可以看到MAC地址了。

除了以上提到的方法,我们还可以通过一些第三方工具来查询电脑的MAC地址。

比如,在Windows系统中,我们可以使用一些网络工具软件,比如IP扫描器、网络监控软件等,这些软件通常会显示网络设备的MAC地址信息。

而在Mac系统中,也有一些类似的网络工具软件可以帮助我们查询MAC地址。

需要注意的是,MAC地址是一个十六进制的字符串,通常由12个字符组成,中间用冒号或者破折号分隔开。

比如,00:1A:2B:3C:4D:5E或者00-1A-2B-3C-4D-5E。

在查询MAC地址时,我们应该确保准确无误地记录下来,以免在后续的网络设置或者网络安全中出现问题。

总的来说,查询电脑MAC地址并不复杂,只需要按照上述的方法进行操作,就可以轻松地找到所需的MAC地址信息。

无论是在Windows系统还是Mac系统中,都有多种方法可以帮助我们完成这一任务。

希望本文提供的方法能够对大家有所帮助,谢谢阅读!。

使用ARP获取局域网内设备IP和MAC地址

使用ARP获取局域网内设备IP和MAC地址

使⽤ARP获取局域⽹内设备IP和MAC地址根据Arp列表数据,查询本地设备在线状态使⽤ arp -a 获得所有内⽹地址,⾸先看Mod对象public struct MacIpPair{public string HostName;public string MacAddress;public string IpAddress;public override string ToString(){string str = "";str += $"HostName:{HostName}\t{IpAddress}\t{MacAddress}";return str;}}其次看看查询⽅法:public List<MacIpPair> GetAllMacAddressesAndIppairs(){List<MacIpPair> mip = new List<MacIpPair>();System.Diagnostics.Process pProcess = new System.Diagnostics.Process();pProcess.StartInfo.FileName = "arp";pProcess.StartInfo.Arguments = "-a ";eShellExecute = false;pProcess.StartInfo.RedirectStandardOutput = true;pProcess.StartInfo.CreateNoWindow = true;pProcess.Start();string cmdOutput = pProcess.StandardOutput.ReadToEnd();string pattern = @"(?<ip>([0-9]{1,3}\.?){4})\s*(?<mac>([a-f0-9]{2}-?){6})";foreach (Match m in Regex.Matches(cmdOutput, pattern, RegexOptions.IgnoreCase)){mip.Add(new MacIpPair(){MacAddress = m.Groups["mac"].Value,IpAddress = m.Groups["ip"].Value});}return mip;}在写个调⽤就可以了:class Program{static void Main(string[] args){var arp = new Comm.ArpHelper();var i = arp.GetLocalIpInfo();Console.WriteLine(i.ToString());var l = arp.GetAllMacAddressesAndIppairs();l.ForEach(x =>{//Console.WriteLine($"IP:{x.IpAddress} Mac:{x.MacAddress}");Console.WriteLine(x.ToString());});Console.WriteLine("\r\n==================================================\r\n");Console.WriteLine("本地⽹卡信息:");Console.WriteLine(arp.GetLocalIpInfo() + " == " + arp.getLocalMac());string ip = "192.168.68.42";Console.Write("\n\r远程 " + ip + " 主机名信息:");var hName = arp.GetRemoteHostName(ip);Console.WriteLine(hName);Console.WriteLine("\n\r远程主机 " + hName + " ⽹卡信息:");string[] temp = arp.getRemoteIP(hName);for (int j = 0; j < temp.Length; j++){Console.WriteLine("远程IP信息:" + temp[j]);}Console.WriteLine("\n\r远程主机MAC :");Console.WriteLine(arp.getRemoteMac("192.168.68.21", "192.168.68.255"));Console.WriteLine(arp.getRemoteMac("192.168.68.21", "192.168.68.44"));Console.ReadKey();}}=====================================================================c# 通过发送arp包获取ip等信息利⽤dns类和WMI规范获取IP及MAC地址在C#编程中,要获取主机名和主机IP地址,是⽐较容易的.它提供的Dns类,可以轻松的取得主机名和IP地址.⽰例:string strHostName = Dns.GetHostName(); //得到本机的主机名IPHostEntry ipEntry = Dns.GetHostByName(strHostName); //取得本机IPstring strAddr = ipEntry.AddressList[0].ToString(); //假设本地主机为单⽹卡在这段代码中使⽤了两个类,⼀个是Dns类,另⼀个为IPHostEntry类,⼆者都存在于命名空间中.Dns类主要是从域名系统(DNS)中检索关于特定主机的信息,上⾯的代码第⼀⾏就从本地的DNS中检索出本地主机名.IPHostEntry类则将⼀个域名系统或主机名与⼀组IP地址相关联,它与DNS类⼀起使⽤,⽤于获取主机的IP地址组.要获取远程主机的IP地址,其⽅法也是⼤同⼩异.在获取了IP地址后,如果还需要取得⽹卡的MAC地址,就需要进⼀步探究了.这⾥⼜分两种情况,⼀是本机MAC地址,⼆是远程主机MAC地址.⼆者的获取是完全不同的.在获取本机的MAC地址时,可以使⽤WMI规范,通过SELECT语句提取MAC地址.在.NET框架中,WMI规范的实现定义在System.Management命名空间中.ManagementObjectSearcher类⽤于根据指定的查询检索管理对象的集合ManagementObjectCollection类为管理对象的集合,下例中由检索对象返回管理对象集合赋值给它.⽰例: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();}获取远程主机的MAC地址时,需要借⽤API函数SendARP.该函数使⽤ARP协议,向⽬的主机发送ARP包,利⽤返回并存储在⾼速缓存中的IP和MAC地址对,从⽽获取远程主机的MAC地址.⽰例:Int32 ldest= inet_addr(remoteIP); //⽬的ipInt32 lhost= inet_addr(localIP); //本地iptry{Int64 macinfo = new Int64();Int32 len = 6;int res = SendARP(ldest,0, ref macinfo, ref len); //发送ARP包return Convert.ToString(macinfo,16);}catch(Exception err){Console.WriteLine("Error:{0}",err.Message);}return 0.ToString();但使⽤该⽅式获取MAC时有⼀个很⼤的限制,就是只能获取同⽹段的远程主机MAC地址.因为在标准⽹络协议下,ARP包是不能跨⽹段传输的,故想通过ARP协议是⽆法查询跨⽹段设备MAC地址的。

用JS获取客户端IP地址、MAC和主机名的7个方法汇总

用JS获取客户端IP地址、MAC和主机名的7个方法汇总
</BODY>
</HTML>
方法二(所有的平台及浏览器):
获取客户端处在网络中的IP,前提是客户得联网。使用的是新浪接口。
代码如下:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>JavaScript获取客户端IP[利用新浪接口]</title>
通过上边的js接口调用就可以判断用于属于哪个城市直接显示该城市的相关信息了对于需要城市切换的网站首次判断用户来源非常有帮助
用JS获取客户端IP地址、MAC和主机名的7个方法汇总
用JS获取客户端IP地址、MAC和主机名的7个方法汇总
今天主要介绍JS获取客户端IP地址、MAC和主机名的7个方法, JS本身是不支持获取IP地址等信息的,本文通过其它方法实现,需要的朋友可以参考。
</script>
//打印截取指定的字段值
<script type="text/javascript" src="/getip.aspx "></script>这个是最简单的
像美团等网站打开的时候,都会自动跳转到我们访问者当前所在的城市,这样极大的提高了返回出用户所在的城市名。
</HEAD>
<BODY>
<script language=javascript>
var WshShell =new ActiveXObject("WScript.Shell");

怎么查询局域网内全部电脑IP和mac地址等信息

怎么查询局域网内全部电脑IP和mac地址等信息

在局域网内查询在线主机的IP一般比较简单,但局域网内全部电脑的IP怎么才能够查到呢?查询到IP后我还要知道对方的一些详细信息(如MAC地址、电脑名称等)该怎么查询呢???工具/原料∙Windows∙网络方法一查询本机IP——窗口查看1.直接单击任务栏最右边的“本地连接”图标,会打开“本地连接状态”对话框,如图:2.单击弹出对话框中的“支持”选项卡,在下面的“连接状态”中能够看到本机的基本IP信息,如上图;3.再单击“本地连接状态”对话框中的“详细信息”按钮,将弹出“网络连接详细信息”对话框:4.该对话框中能够显示详细的本机网络信息,如IP地址、MAC地址、子网掩码和默认网关及NDS等信息,如上图。

方法二查看本机IP——命令查看1.点击屏幕左下角任务栏左边的“开始”菜单,选择“运行”命令:2.在弹出“的运行”对话框的文本输入框中直接输入“cmd”,单击“确定”按钮,打开黑色背景的DOS“命令提示符”窗口:3.或者单“开始”按钮,选择“所有程序”,再选择“附件”,再从弹出的菜单中选择“命令提示符”,同样能打开“DOS命令提示符”窗口:4.在DOS“命令提示符”窗口中输入“ipconfig/all”,同样可以查看本机的详细信息:5.在该结果窗口中,具体显示了本机详细的计算机名称、MAC地址、DHCP、DNS、网关等详细内容。

方法三查看局域网内其它电脑名称和IP1.有些时候我们需要查询本局域网内所有电脑IP和电脑名称,但网络上很多有类似功能的软件并不安全,而无相关的技术的人员也较难实现这个需求,此时可以尝试这里介绍的无需任何软件和其它技术的简便方法。

2.如果你要方便,可打开dbank下载地址/c0cu3h09ga下载查询程序:3.如果要自己建立这个程序,可以参照从这里开始的步骤。

点击任务栏中的“开始”按钮,选择“所有程序”,再选择“附件”,再选择弹出菜单中的“记事本”,打开记事本程序:4.将以下内容复制到记事本,另存为后缀为.bat的批处理文件:COLOR 0ACLS@ECHO OffTitle 查询局域网内在线电脑IP:send@ECHO off&setlocalenabledelayedexpansionECHO 正在获取本机的IP地址,请稍等...for /f "tokens=3 skip=2 delims=: " %%i in ('nbtstat -n') do (set "IP=%%i"set IP=!IP:~1,-1!ECHO 本机IP为:!IP!goto :next):nextfor /f "delims=. tokens=1,2,3,4" %%i in ("%IP%") do set range=%%i.%%j.%% kECHO.&ECHO 正在获取本网段内的其它在线计算机名,请稍等...ECHO 本网段【%range%.*】内的计算机有:for /f "delims=" %%i in ('net view') do (set "var=%%i"::查询在线计算机名称if "!var:~0,2!"=="\\" (set "var=!var:~2!"ECHO !var!ping -n 1 !var!>nul))ECHO.ECHO 正在获取本网段内的其它在线计算机IP,请稍等...for /f "skip=3 tokens=1,* delims= " %%i in ('arp -a') do ECHO IP: %%i 正在使用ECHO.ECHO 查询完毕,按任意键退出...pause>nul5.在记事本窗口中,点击“文件”菜单,从弹出菜单中选择“另存为...”命令:6.在“保存类型”中选择“所有文件”,将“文件名”保存为.bat的文件,如“查看局域网在线IP.bat”,如上图;7.打开刚才保存的“查看局域网在线IP.bat”程序,可以看到执行结果:8.在以上的执行窗口中,有显示两部分内容:本局域网内所有在线电脑的电脑名称和IP地址,并且,上下两部分相同位置对应的是同一台电脑;9.当然,如果可以的话,你还能够根据需要,修改本BAT程序查询这些对应IP的MAC地址、打开的共享等。

电脑mac地址怎么查

电脑mac地址怎么查

电脑mac地址怎么查一、什么是MAC地址MAC地址(Media Access Control Address)又称物理地址,它是计算机网卡的唯一硬件地址。

每个网卡都有一个唯一的MAC地址,用于在局域网中标识计算机的身份。

MAC地址由12个十六进制位组成,通常以冒号(:)或连字号(-)分隔为六组。

例如,00:1A:E2:15:21:72就是一个典型的MAC地址。

二、为什么需要查找MAC地址在某些情况下,我们可能需要查找计算机的MAC地址。

1. 网络管理: 系统管理员可能需要通过MAC地址来跟踪和管理网络上的设备。

2. 网络安全: MAC地址可以用于实施网络安全策略,如MAC地址过滤和认证。

3. 网络故障排除: 在网络出现故障时,查找设备的MAC地址可以帮助我们确定问题的来源。

三、如何查找MAC地址下面我们将介绍几种常见的方法来查找计算机的MAC地址。

1. Windows系统在Windows系统中,查找MAC地址可以通过以下步骤进行:a. 打开“开始”菜单,点击“控制面板”。

b. 在控制面板中,选择“网络和Interne t”。

c. 在“网络和Internet”下,点击“查看网络状态和任务”。

d. 在新窗口中,点击“以太网”或“Wi-Fi”,然后点击“详细信息”。

e. 在新窗口中,查找“物理地址”或“MAC地址”,即可找到计算机的MAC地址。

2. macOS系统如果你是在macOS系统上查找MAC地址,可以按照以下步骤进行:a. 打开“系统偏好设置”。

b. 在“系统偏好设置”中,点击“网络”。

c. 在网络设置中,选择你正在使用的网络连接,如“以太网”或“Wi-Fi”。

d. 在右下方的窗口中,点击“高级”。

e. 在新窗口中,切换到“硬件”选项卡,即可找到计算机的MAC 地址。

3. Linux系统对于Linux系统,可以通过终端来查找MAC地址。

请按照以下步骤进行:a. 打开终端。

b. 在终端中,输入以下命令:ifconfig -a | grep HWaddrc. 终端将显示与每个网络接口相关的MAC地址。

获取ip Mac地址

获取ip Mac地址

2.//局域网IPpublic static string GetClientIP(){string userHostAddress = string.Empty;string HostName = .Dns.GetHostName(); //得到主机名.IPHostEntry IpEntry = Dns.GetHostEntry(HostName); //得到主机IPuserHostAddress = IpEntry.AddressList[0].ToString();return userHostAddress;}4.一台电脑绑定多个MAC则取不到//获取mac地址public static string GetCustomerMac(){string IP = "192.168.0.12";string dirResults = "";ProcessStartInfo psi = new ProcessStartInfo();Process proc = new Process();psi.FileName = "nbtstat";psi.RedirectStandardInput = false;psi.RedirectStandardOutput = true;psi.Arguments = "-a " + IP;eShellExecute = false;proc = Process.Start(psi);dirResults = proc.StandardOutput.ReadToEnd();proc.WaitForExit();//匹配mac地址Match m = Regex.Match(dirResults,"\\w+\\-\\w+\\-\\w+\\-\\w+\\-\\w+\\-\\w\\w");//若匹配成功则返回mac,否则返回找不到主机信息if (m.ToString() != ""){return m.ToString();}else{return"找不到主机信息";}}5.一个电脑绑定多个MAC,取正在使用的//下面一种方法可以获取远程的MAC地址[System.Runtime.InteropServices.DllImport("Iphlpapi.dll")] static extern int SendARP(Int32DestIP, Int32SrcIP, ref Int64MacAddr, ref Int32 PhyAddrLen);[System.Runtime.InteropServices.DllImport("Ws2_32.dll")] static extern Int32 inet_addr(string ipaddr);///<summary>/// SendArp获取MAC地址///</summary>///<param name="RemoteIP">目标机器的IP地址如(192.168.1.1)</param>///<returns>目标机器的mac 地址</returns>public bool getMacAddr_Remote(string RemoteIP){bool masf = false;System.Text.StringBuilder macAddress = newSystem.Text.StringBuilder();try{Int32 remote = inet_addr(RemoteIP);Int64 macInfo = new Int64();Int32 length = 6;SendARP(remote, 0, ref macInfo, ref length);string temp = Convert.ToString(macInfo, 16).PadLeft(12,'0').ToUpper();int x = 12;for (int i = 0; i < 6; i++){if (i == 5){macAddress.Append(temp.Substring(x - 2, 2));}else{macAddress.Append(temp.Substring(x - 2, 2) + "-");}x -= 2;}if (macAddress.ToString() != ""){dbhelper db = new dbhelper();DataTable dt = new DataTable();string sql = "";sql = "select * from er_ip_mac where ip='" + RemoteIP + "' and mac='" + macAddress.ToString() + "'";dt = db.getTable(sql);if (dt.Rows.Count > 0){masf= true;}}}catch{}return masf;}1.public static string GetTrueIp(){string userHostAddress = string.Empty;userHostAddress = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];if ((userHostAddress != null) && (userHostAddress != string.Empty)){//可能有代理if (userHostAddress.IndexOf(".") == -1) //没有".",非IPv4格式{userHostAddress = null;}else if (userHostAddress.IndexOf(",") != -1) //有",",估计有多个代理,取第一个不是内网的IP。

获取ip地址的方法

获取ip地址的方法

获取ip地址的方法获取IP地址的方法。

IP地址(Internet Protocol Address)是指互联网协议地址,是分配给网络上的每一个设备的数字标识,用于在网络中定位设备。

获取IP地址是网络管理和故障排除中的重要步骤,下面将介绍几种获取IP地址的方法。

1. 通过命令提示符获取IP地址。

在Windows操作系统中,可以通过命令提示符来获取IP地址。

首先点击开始菜单,输入“cmd”打开命令提示符窗口,然后输入“ipconfig”命令并按下回车键。

系统将显示出本机的IP地址、子网掩码、默认网关等信息。

通过这种方法可以快速获取本机的IP地址,方便进行网络设置和故障排除。

2. 通过网络设置界面获取IP地址。

除了使用命令提示符,还可以通过操作系统的网络设置界面来获取IP地址。

在Windows操作系统中,可以在控制面板的网络和共享中心中找到网络适配器的设置,查看本机的IP地址和其他网络信息。

在Mac OS和Linux系统中,也可以通过类似的网络设置界面来获取IP地址。

3. 通过路由器管理界面获取IP地址。

在局域网中,设备的IP地址通常由路由器动态分配,可以通过路由器的管理界面来查看设备的IP地址分配情况。

首先在浏览器中输入路由器的管理地址,登录路由器管理界面,然后找到局域网设置或DHCP分配页面,查看已连接设备的IP地址信息。

通过这种方法可以了解局域网内设备的IP地址分配情况。

4. 通过网络工具获取IP地址。

除了以上方法,还可以使用一些网络工具来获取IP地址。

例如,可以使用网络扫描工具来扫描局域网内的设备,并获取其IP地址和其他网络信息。

此外,还可以使用网络监控工具来实时监控设备的IP地址变化情况,及时发现网络故障和安全问题。

总结。

获取IP地址是网络管理和故障排除中的重要步骤,可以通过命令提示符、网络设置界面、路由器管理界面和网络工具等多种方法来获取IP地址。

掌握这些方法可以帮助用户更好地管理和维护网络设备,保障网络的正常运行和安全性。

如何获取局域网所有电脑MAC地址

如何获取局域网所有电脑MAC地址

如何获取局域网所有电脑MAC地址为方便局域网管理,以及预防病毒攻击,我们经常会需要制作局域网设备MAC地址表来比对、核查。

下面是店铺给大家整理的一些有关获取局域网所有电脑MAC地址的方法,希望对大家有帮助!获取局域网所有电脑MAC地址的方法一、所涉及DOS命令讲解set ip=192.168.1,set为设置环境变量命令。

该命令将IP设置为值为“192.168.1"的参数,其中“192.168.1"为局域网网段,请根据局域网实际值修改。

for /l %j in (1,1,10) do echo %i,for命令是DOS命令中一个功能十分强大的命令,在这里用到/L参数,功能是以一个增量数字集进行循环(start,step,end),即变量j初值start为1,每循环一次加增量step1,直到大于end10停止循环,每次循环执行do后面的命令。

该命令功能对变量进行每次加1,并用echo命令显示在屏幕上。

ping 192.168.1.1 -n 1 -w 1000,ping命令主要用于测试IP的连通性,-n 表示每一次ping过程发送的数据包数,-w表示每个数据包发出后等待回执的时间阀值。

该命令表示对192.168.1.1的电脑进行ping测试,发1个包,回执时间超过1秒视为超时不通。

如果IP地址能ping通,程序能够从应答数据包中获取该IP设备的mac地址,并存放到内存arp地址表中。

arp -a 192.168.1.18,arp命令主要用于显示或修改arp地址表。

-a表示显示某个或全部arp地址表。

该命令表示显示IP为192.168.1.18设备的mac。

echo ssss|findstr dynamic,findstr查找字符串命令,一般用于从文件中查找含个某个字符的行,这里用到“|”(管道符),即把上一个命令的输出作为下一个命令的输入。

该命令表示在命令“echo ssss”输出结果中查找含有“dynamic”字符串的行。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
int nRetCode;
nRetCode = gethostname(szHostName,sizeof(szHostName));
if(nRetCode != 0)
{
return WSAGetLastError();
}
sHostName = szHostName;
return 0;
}
获得IP地址
指导教师意见
签名: 年 月 日
注:各学院可根据教学需要对以上栏木进行增减。表格内容可根据内容扩充。
答:是入口参数。
2.函数GetIPAddress(const Cstring& sHostName,Cstring& sIPAddress)中的形参是出口参数还是入口参数?
答:是入口参数。
3.在上面程序中我们并没有让确定按钮发挥作用,看看能否将程序改为不要一运行就能在窗口上看到结果,而需要点击确定按钮后才看到结果,请说明如何做?
(3)在弹出的MFC AppWizard-Step1of 4对话框中选择Dialog Based(对话框基础)单选项,然后单击下一步按钮。
(4)在MFC AppWizard-Step2 of 4对话框中注意勾选windows sockets支持复选框,在标题对话框中输入想显示的窗口标题(例如:获取主机名和IP地址),然后单击下一步按钮。
{
free(pAdapterInfo);
pAdapterInfo=(IP_ADAPTER_INFO *)malloc(ulOutBufLen);
}
if((dwRetVal=GetAdaptersInfo(pAdapterInfo,&ulOutBufLen))==NO_ERROR)
{
pAdapter=pAdapterInfo;
(5)其余步骤选择默认值。
(6)最后在MFC AppWizard-Step4 of 4对话框中单击完成按钮,完成项目的建立。
实验结果
主要实现函数程序清单:
//获得主机名
int CWinsock_getIPDlg::GetLocalHostName(CString &sHostName)
{
char szHostName[256];
答:进入其成员函数,添加如下语句:
int nRetCode;
nRetCode=GetLocalHostName(m_sHostName);
nRetCode=GetIPAddress(m_sHostName,m_sIPAddress);
GetMAC(m_sMAC);
UpdateData(FALSE);
int CWinsock_getIPDlg::GetIPAddress(const CString &sHostName, CString &sIPAddress)
{
struct hostent FAR* lpHostEnt = gethostbyname(sHostName);
if(lpHostEnt == NULL)
实验原理
要通过本次试验初步了解Winsock程序的编制,并掌握如何利用MFC进行程序设计,为以后自己编制类似的程序打下良好的基础。
实验内容
利用winsock提供的相关函数进行MFC程序的编制,要求获取计算机IP地址和主机名,并显示在窗口上。
实验环境
PC机
VC++6.0环境
实验步骤
1.启动Visual C++6.0开发环境
pAdapter->Address[5]);
}
}
对确定键的实现
void CWinsock_getIPDlg::OnOK()
{
// TODO: Add extra validation here
int nRetCode;
nRetCode=GetLocalHostName(m_sHostName);
nRetCode=GetIPAddress(m_sHostName,m_sIPAddress);
{
return WSAGetLastError();
}
LPSTR lpAddr = lpHostEnt->h_addr_list[0];
if(lpAddr)
{
struct in_addr inAddr;
memmove(&inAddr,lpAddr,4);
sIPAddress = inet_ntoa(inAddr);
贵州大学实验报告
学院:计信学院专业: 实验组
实验时间
指导教师
成绩
实验项目名称
获取计算机IP地址和主机名及MAC地址
实验目的
1、掌握MFC程序设计的基本方法;
2、了解在该网络环境下利用Winsock获取IP地址的方法及实现原理;
3、了解在该网络环境下利用Winsock获取计算机名的方法及实现原理。
GetMAC(m_sMAC);
UpdateData(FALSE);
}
void CWinsock_getIPDlg::OnCancel()
{
// TODO: Add extra cleanup here
CDialog::OnCancel();
}
点击确定后:
点击取消。
实验总结
1.函数GetLocalHostName(Cstring& sHostName)中的形参是出口参数还是入口参数?
if(sIPAddress.IsEmpty())
{
return 0;
}
}
return 0;
}
获得MAC地址
void CWinsock_getIPDlg::GetMAC(CString &sMAC)
{
PIP_ADAPTER_INFO pAdapterInfo;
PIP_ADAPTER_INFO pAdapter=NULL;
从“开始”菜单中选择“程序| Microsoft Visual Studio 6.0 | Microsoft Visual C++ 6.0”,显示Visual C++6.0开发环境窗口。
2.创建一个项目
(1)单击File菜单中的New选项,显示New(新建)对话框。
(2)单击Project(项目)标签,在Project选项卡中,选择MFC AppWizard(exe)(MFC应用程序向导)。在Location(位置)文本框中指定一个路径,在Project Name(项目名称)文本框中为项目输入一个名字(例如:Winsock_getIP),单击OK按钮。
DWORD dwRetVal;
pAdapterInfo=(IP_ADAPTER_INFO *)malloc(sizeof(IP_ADAPTER_INFO));
ULONG ulOutBufLen=sizeof(IP_ADAPTER_INFO);
if (GetAdaptersInfo(pAdapterInfo,&ulOutBufLen)==ERROR_BUFFER_OVERFLOW)
if(pAdapter)
sMAC.Format("%2.2x-%2.2x-%2.2x-%2.2x-%2.2x-%2.2x",
pAdapter->Address[0],
pAdapter->Address[1],
pAdapter->Address[2],
pAdapter->Address[3],
pAdapter->Address[4],
相关文档
最新文档