1. 如何用c语言获取网卡的mac地址
为什么一定要用C语迹坦言呢带运?这个用C语言比较麻烦,需要的知识比较多,完全可以用更简单的办法啊。命令行上这样的命令“ipconfig -all | find "物理地姿行桐址"”,可以很简单的就得到了。
如果是英文系统, 将“物理地址”换成“Physical Address”即可。
如果非的要用C语言,则可以先调用system函数, system("ipconfig -all | find \"物理地址\" > temp.txt" ); 将mac地址信息存入临时文件temp.txt;然后再从中提取。
2. 怎么将ipconfig/all里面的内容显示出来,并取出IP地址值。(用C语言)
/* 编译环境: visual c++ */
#include <stdio.h>
#include <winsock2.h>
#pragma comment(lib,"ws2_32.lib")
int doit(int, char **)
{
char host_name[255];
/渗态/获取本地主机名称
if (gethostname(host_name, sizeof(host_name)) == SOCKET_ERROR) {
printf("Error %d when getting local host name.n", WSAGetLastError());
return 1;
}
printf("Host name is: %sn", host_name);
//从主机名数据库中得到对应的“主机”
struct hostent *phe = gethostbyname(host_name);
if (phe == 0) {
printf("Yow! Bad host lookup.");
return 1;
}
//循环得出本地机器所有IP地址丛悔源
for (int i = 0; phe->h_addr_list[i] != 0; ++i) {
struct in_addr addr;
memcpy(&addr, phe->h_addr_list[i], sizeof(struct in_addr));
printf("Address %d : %sn" , i, inet_ntoa(addr));
}
return 0;
}
int main(int argc, char *argv[])
{
WSAData wsaData;
if (WSAStartup(MAKEWORD(1, 1), &wsaData) != 0) {
return 255;
}
前春int retval = doit(argc, argv);
WSACleanup();
return retval;
}
3. C语言如何实现IP地址查询系统
C语言如何实现IP地址查询系统
参考如下:
voidGetNameAndIp()
{
structhostent*host;
structin_addr*ptr;
DWORDdwScope=RESOURCE_CONTEXT;
NETRESOURCE*NetResource=NULL;
HANDLEhEnum;
WNetOpenEnum(dwScope,NULL,NULL,NULL,&hEnum);
WSADATAwsaData;
WSAStartup(MAKEWORD(1,1),&wsaData);
if(hEnum)
{
DWORDCount=0xFFFFFFFF;
DWORDBufferSize=10240;
LPVOIDBuffer=newchar[10240];
WNetEnumResource(hEnum,&Count,Buffer,&BufferSize);
NetResource=(NETRESOURCE*)Buffer;
charszHostName[200];
for(unsignedinti=0;i<BufferSize/sizeof(NETRESOURCE);i++,NetResource++)
{
if(NetResource->dwUsage==RESOURCEUSAGE_CONTAINER&&NetResource->dwType==RESOURCETYPE_ANY)
{
if(NetResource->lpRemoteName)
{
CStringstrFullName=NetResource->lpRemoteName;
if(0==strFullName.Left(2).Compare(_T("\\")))
strFullName=strFullName.Right(strFullName.GetLength()-2);
gethostname(szHostName,strlen(szHostName));
USES_CONVERSION;
char*pchar=T2A(strFullName);
host=gethostbyname(pchar);
if(host==NULL)continue;
ptr=(structin_addr*)host->h_addr_list[0];
stringstr="";
for(intn=0;n<4;n++)
{
CStringaddr;
if(n>0)
{
str+=".";
}
intvalue=(unsignedint)((unsignedchar*)host->h_addr_list[0])[n];
charp[20];
sprintf(p,"%d",value);
str.append(p);
}
std::cout<<"IP:"<<str<<"Name:"<<host->h_name<<std::endl;
}
}
}
deleteBuffer;
WNetCloseEnum(hEnum);
}
WSACleanup();
}
4. 怎样通过C语言修改系统IP
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define N 50
typedef struct
{
char eth[N], ip[N], netmasks[20], gw[N], dns[N], tag[N];
}data;
int main()
{
data list[]=
{
{
"本地连接",
"222.22.65.173", //IP地址
"255.255.255.128",//子网掩码
"222.22.65.129",//默认网关
"202.196.64.1",//首选DNS服务器地址
"LAB"//这个配置的标签
},
{
"本地连接",
"10.108.8.89",
"255.255.255.0",
"10.108.8.1",
"202.196.64.1",
"寝室"
}
};
int i, num=sizeof(list)/sizeof(data);
char temp[200], set[200];
for(i=0; i<num; i++)
printf("%d %s\n", i+1, list[i].tag);
printf("\n输入需要修改至的IP编号\n");
while( scanf("%d", &i)!=1 || i>num || i<=0);
i--;
sprintf(set, "netsh interface ip set address \"%s\" static %s %s %s >nul",
list[i].eth, list[i].ip, list[i].netmasks, list[i].gw);
sprintf(temp, "& netsh interface ip set dns \"%s\" static %s & ipconfig & pause",
list[i].eth, list[i].dns);
strcat(set, temp);
system(set);
return 0;
}
5. C语言有一个已排好序的整型数组,有10个元素,要求从键盘输入一个数后,按原来排序的规律将它插入数组中
源代码如下:
#include <stdlib.h>
#include <stdio.h>
int main()
{
int a[20],i,n,x,k;
printf("请输入一组顺序数(从小到大的顺序):");
for( i=0; ;i++ )
{
scanf("%d",&a[i]);
if( getchar() == ' ' )
break;
}
n = i + 1; //n表示数组内数字的个数
printf("请输入需要插入的数:");
scanf("%d",&x);
for(i=0;i<n;i++)
{
if( x<= a[i] )
{
for( k= n-1; k >= i; k--)
{
a[k+1]=a[k];
}
a[i]=x;
break;
}
}
for(i=0;i<=n; i++)
{
printf("%d ",a[i]);
}
printf(" ");
system("pause");
}
(5)c语言ipconfig扩展阅读
1、C语言支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。
2、数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量。
6. Hi,您知道C语言如何调用DOS命令 如:ipconfig | find “17”
解:
system("ipconfig
|
find
\"17\"
");
在C语言里双引号内特殊字符用反斜杠"\"表示,如引号输入\",两个引号输入\手嫌"\",反斜杠本身\\等
LZ该不会不知燃嫌道"\n"皮薯手吧?