怎么用C语言去设置本地IP地址

怎么用C语言去设置本地IP地址,第1张

#include <iostream>

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

把获取到的十进制在转换成字符串

//然后返回

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11529080.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存