using namespace std
#include <stdio.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <errno.h>
#include <string.h>
#include <stdlib.h>
void setIPv4(char * ip,char * gw,char * netmask){
char cmd[128]
//network interface
char nwkInf[5]="eth0"
//link down command in Linux
sprintf(cmd,"ip link set %s down",nwkInf)
system(cmd)
memset(cmd,0x00,64)
//command to set ip address, netmask
sprintf(cmd,"ifconfig %s %s netmask %s",nwkInf,ip,netmask)
system(cmd)
printf("\ncmd : %s",cmd) fflush(stdout)
memset(cmd,0X00,64)
//command to set gateway
sprintf(cmd,"route add default gw %s %s",gw,nwkInf)
system(cmd)
memset(cmd,0X00,64)
//link up command
sprintf(cmd,"ip link set %s up",nwkInf)
system(cmd)
}
int main(){
//calling function to set network settings
setIPv4("192.168.10.267","192.168.10.1","255.255.255.0")
return 0
}
#include #include #include #define N 50 typedef struct { char eth[N], ip[N], netmasks[20], gw[N], dns[N], tag[N]}dataint main() { data list[]= { { "本地连接", "222.22.65.173", //IP地址 "255.255.255.128",////十进制ip字符串转二进制char*
iptobir(char*ip
){
char*
b1[4]={0},b2[4]={0},b3[4]={0},b4[4]={0}
memcpy(b1,ip,3)
ip+=4
memcpy(b2,ip,3)
ip+=4
memcpy(b3,ip,3)
ip+=
4
memcpy(b4,ip,3)
int
bi1,bi2,bi3,bi4
//字符串转整形
bi1
=
atoi(b1)
bi2
=
atoi(b2)
bi3
=
atoi(b3)
bi4
=
atoi(b4)
//整形转二进制
char*
br
=
new
char[33]
//这是一个位的转二进制的方式。其他的由你解决
for(int
i
=0
i<8i++){
*(br+i)
=
(
(bi1>>i
)&1
)
}
。。。。
return
br
}
//
二进制转十进制,
差不多是反过来处理
char*
birtoIp(char*
bip){
//二进制转十进制
int
a
//获取到第一个十进制ip位
for(int
i
=0
i<8
i++)
{
a
^=(
*(bip+i)
>>
i
)
}
。。。。
//
b
把获取到的十进制在转换成字符串
//然后返回
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)