如何使用Linux命令 自动获取IP

如何使用Linux命令 自动获取IP,第1张

1图形界面:setup命令,然后选择network--》选择你要设置的网卡--》编辑将其类型改为dhcp--》重启网卡即可。

2命令行界面:vi /etc/sysconfig/network-script/ifcfg-eth0

BOOTPROTO=DHCP(一定要大写)。

然后重启网卡

server network restart

在进行Linux网络编程时,经常用到本机IP地址。本文罗列一下常见方法,以备不时之需。

获取本机IP地址,是一个相当灵活的 *** 作,原因是网络地址的设置非常灵活而且都是允许用户进行个性化设置的。比如一台计算机上可以有多块物理网卡或者虚拟网卡,一个网卡上可以绑定多个IP地址,用户可以为网卡设置别名,可以重命名网卡。用户计算机所在网络拓扑结构未知,主机名设置是一个可选项,并且同样可以为一个计算机绑定多个主机名等,这些信息都会有影响。脱离了网络连接,单独的网络地址没有任何意义。编程中遇到必须获取计算机IP的场景,应该考虑将这一选项放到配置文件中,由用户自己来设置。

参考网络和书本,编程获取本机IP地址大约有以下几种方法。

方法一:ioctl()获取本地IP地址

Linux 下 可以使用ioctl()函数以及结构体 struct ifreq和结构体struct ifconf来获取网络接口的各种信息。

具体过程是先通过ictol获取本地的所有接口信息,存放到ifconf结构中,再从其中取出每个ifreq表示的ip信息(一般每个网卡对应一个IP地址,如:”eth0…、eth1…”)。

先了解结构体 struct ifreq和结构体struct ifconf:

//ifconf通常是用来保存所有接口信息的

//ifh

struct ifconf

{

int ifc_len; / size of buffer /

union

{

char ifcu_buf; /input from user->kernel/

struct ifreq ifcu_req; / return from kernel->user/

} ifc_ifcu;

};

#define ifc_buf ifc_ifcuifcu_buf /buffer address /

#define ifc_req ifc_ifcuifcu_req /array of structures/

//ifreq用来保存某个接口的信息

//ifh

struct ifreq {

char ifr_name[IFNAMSIZ];

union {

struct sockaddr ifru_addr;

struct sockaddr ifru_dstaddr;

struct sockaddr ifru_broadaddr;

short ifru_flags;

int ifru_metric;

caddr_t ifru_data;

} ifr_ifru;

};

#define ifr_addr ifr_ifruifru_addr

#define ifr_dstaddr ifr_ifruifru_dstaddr

#define ifr_broadaddr ifr_ifruifru_broadaddr

ifconfig命令获取网卡地址,再过滤一下ip就出来了

ifconfig | grep '[0-9]\{1,3\}\[0-9]\{1,3\}\'|cut -d ":" -f2| cut -d " " -f1 | sed -n "1p"

方案一:

你用C语言去读取/etc/resolvconf,格式是namserver 提取以下 就有DNS了

至于网关 你可以去读取/etc/sysconfig/network /etc/sysconfig/network-scripts/ifcfg-eth0等文件,但是各个Linux系统可能少有差别。

方案二:

在C程序中调用exec函数,执行route命令,从返回的结果中提取网关

至于DNS 也可以通过dig localhost, 从结果中提取DNS 但是就没有方案一中快了

要获取对方主机设备的IP地址,一定需要有对方的某种标识。就如我想知道某人名字,可以看对方的身份z,问其他人,或者直接问对方等等,如果没有任何标识,就查不出对方的名字的。同理,linux下如何获得对方的IP地址呢,你要知道对方的某种标识。比如,我晓得对方主机的域名,我就可以在控制台上用ping命令ping对方的域名,linux的控制台上随后会显示出对方域名服务器的地址的。

可用指令如下:

1、service network restart:重启服务

2、ifconfig eth0 down ; ifconfig eth0 up:对网卡进行 *** 作

3、sudo dhclient -r//release ip:释放IP

4、sudo dhclient//:获取IP

扩展资料:

linux常用命令及技巧

1、date :print or set the system date and time

2、 stty -a: 可以查看或者打印控制字符(Ctrl-C, Ctrl-D, Ctrl-Z等)

3、passwd: print or set the system date and time (用passwd -h查看)

4、logout, login: 登录shell的登录和注销命令

5、pwd: print working directory

6、more, less, head tail: 显示或部分显示文件内容

7、lp/lpstat/cancel, lpr/lpq/lprm: 打印文件

8、更改文件权限: chmod u+x

9、删除非空目录:rm -fr dir

10、拷贝目录: cp -R dir

11、fg jobid :可以将一个后台进程放到前台。

参考资料来源:百度百科_linux

以上就是关于如何使用Linux命令 自动获取IP全部的内容,包括:如何使用Linux命令 自动获取IP、linux 下获取本地ip地址后 怎样、linux系统函数怎么获取ip地址等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/web/9688336.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存