怎么通过数组的形式来在运行中输入ip地址mac地址和ip地址

通过MAC地址查询IP地址_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
通过MAC地址查询IP地址
|0|0|文档简介
总评分3.9|
浏览量1481527
&&通过MAC地址查询IP地址
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
你可能喜欢您所在的位置: &
取得MAC地址的4种方法
取得MAC地址的4种方法
这种方法的优点是你只要能够在机器上执行“ipconfig /all”命令你就可以得到MAC地址,而这个命令在所有的网卡可用的情况下都是可用的。
MAC4CPUMACGOOGLE
PCOK,run anywhereSCISSCIS
MACMACGOOGLEMACURL . cker
1MACPCMAC,ckerMAC
LINUXconfig /all
2. IPCONFIG
3. lpszBuffer
4. lpszBufferMAC
#include &string&#include &iostream&
//命令行输出缓冲大小const long MAX_COMMAND_SIZE = 10000;
//获取MAC命令行char szFetCmd[] = "ipconfig /all";//网卡MAC地址的前导信息const string str4Search = "Physical Address. . . . . . . . . : ";
//用命令行方式获取网卡MAC地址BOOL GetMacByCmd(char *lpszMac);
////////////////////////////////////////////////////////////////////////////// 函数名: GetMacByCmd(char *lpszMac)// 参数://&&&&& 输入: void//&&&&& 输出: lpszMac,返回的MAC地址串// 返回值://&&&&& TRUE:& 获得MAC地址。//&&&&& FALSE: 获取MAC地址失败。// 过程://&&&&& 1. 创建一个无名管道。//&&&&& 2. 创建一个IPCONFIG 的进程,并将输出重定向到管道。//&&&&& 3. 从管道获取命令行返回的所有信息放入缓冲区lpszBuffer。//&&&&& 4. 从缓冲区lpszBuffer中获得抽取出MAC串。////& 提示:可以方便的由此程序获得IP地址等其他信息。//&&&&&&& 对于其他的可以通过其他命令方式得到的信息只需改变strFetCmd 和 //&&&&&&& str4Search的内容即可。///////////////////////////////////////////////////////////////////////////
BOOL GetMacByCmd(char *lpszMac){//初始化返回MAC地址缓冲区memset(lpszMac, 0x00, sizeof(lpszMac));BOOL&
&SECURITY_ATTRIBUTES HANDLE hReadPipe,hWriteP
&&& sa.nLength = sizeof(SECURITY_ATTRIBUTES); sa.lpSecurityDescriptor = NULL; sa.bInheritHandle = TRUE; //创建管道bret = CreatePipe(&hReadPipe, &hWritePipe, &sa, 0);if(!bret){return FALSE;}
&//控制命令行窗口信息STARTUPINFO //返回进程信息PROCESS_INFORMATION
&&& si.cb = sizeof(STARTUPINFO); GetStartupInfo(&si); si.hStdError = hWriteP si.hStdOutput = hWriteP si.wShowWindow = SW_HIDE;&//隐藏命令行窗口si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
&//创建获取命令行进程bret = CreateProcess (NULL, szFetCmd, NULL, NULL, TRUE, 0, NULL, NULL, &si, &pi ); char szBuffer[MAX_COMMAND_SIZE+1];&//放置命令行输出缓冲区string strB
&if (bret) { WaitForSingleObject (pi.hProcess, INFINITE); CloseHandle(hWritePipe);
&&memset(szBuffer, 0x00, sizeof(szBuffer));bret& =& ReadFile(hReadPipe,& szBuffer,& MAX_COMMAND_SIZE,& &count,& 0);if(!bret){//关闭所有的句柄CloseHandle(hWritePipe);CloseHandle(pi.hProcess); CloseHandle(pi.hThread); CloseHandle(hReadPipe);return FALSE;}else{strBuffer = szBipos = strBuffer.find(str4Search);
&&&//提取MAC地址串strBuffer = strBuffer.substr(ipos+str4Search.length());ipos = strBuffer.find("\n");strBuffer = strBuffer.substr(0, ipos);}}
&memset(szBuffer, 0x00, sizeof(szBuffer));strcpy(szBuffer, strBuffer.c_str());
&//去掉中间的“00-50-EB-0F-27-82”中间的'-'得到2int j = 0;for(int i=0; i&strlen(szBuffer); i++){if(szBuffer[i] != '-'){lpszMac[j] = szBuffer[i];j++;}}
&//关闭所有的句柄CloseHandle(hWritePipe);CloseHandle(pi.hProcess); CloseHandle(pi.hThread); CloseHandle(hReadPipe);return TRUE;
关于&&&&的更多文章
IE浏览器不支持很多CSS属性是出了名的,即便在支持的部分中,也
KKovacs 收集了 24 个 Linux/Unix 平台上的工具,既有熟悉的
3月23日,甲骨文正式宣布已将竞争对手SAP告上法庭,指
ERP是一个由计算机来帮助进行的企业的业务处理系统。
CRM客户关系管理是选择和管理最有价值客户关系的一种
本书取材于各大IT公司历年面试真题(笔试、口试、电话面试、英语面试,以及逻辑测试和智商测试)。详细分析了应聘程序员(含网
51CTO旗下网站2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。}

我要回帖

更多关于 在运行中输入ip地址 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信