linux本地地址
① linux 下获取本地ip地址后 怎样
在进行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通常是用来保存所有接口信息的
//if.h
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_ifcu.ifcu_buf /*buffer address */
#define ifc_req ifc_ifcu.ifcu_req /*array of structures*/
//ifreq用来保存某个接口的信息
//if.h
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_ifru.ifru_addr
#define ifr_dstaddr ifr_ifru.ifru_dstaddr
#define ifr_broadaddr ifr_ifru.ifru_broadaddr
② linux的主机地址
查看本机地址常用的两种命令 ifconfig ipaddr 都行 具体可以看看《linux就该这么学》
③ Linux:127.0.0.1、本机IP地址(例如192.168.2.20)、服务器IP地址她仨的
通常情况下,回送地址是lo,本机地址是eth0,eth1,。。。服务器地址可以是指定的一个IP地址或者是所有的本机地址,具体看设置或者发布的网段。
④ linux下怎么查看本机IP
ifconfig -a
1.命令格式:
ifconfig [网络设备] [参数]
2.命令功能:
ifconfig 命令用来查看和配置网络设备。当网络环境发生改变时可通过此命令对网络进行相应的配置。
3.命令参数:
up 启动指定网络设备/网卡。
down 关闭指定网络设备/网卡。该参数可以有效地阻止通过指定接口的IP信息流,如果想永久地关闭一个接口,我们还需要从核心路由表中将该接口的路由信息全部删除。
arp 设置指定网卡是否支持ARP协议。
-promisc 设置是否支持网卡的promiscuous模式,如果选择此参数,网卡将接收网络中发给它所有的数据包
-allmulti 设置是否支持多播模式,如果选择此参数,网卡将接收网络中所有的多播数据包
-a 显示全部接口信息
-s 显示摘要信息(类似于 netstat -i)
add 给指定网卡配置IPv6地址
del 删除指定网卡的IPv6地址
<硬件地址> 配置网卡最大的传输单元
mtu<字节数> 设置网卡的最大传输单元 (bytes)
netmask<子网掩码> 设置网卡的子网掩码。掩码可以是有前缀0x的32位十六进制数,也可以是用点分开的4个十进制数。如果不打算将网络分成子网,可以不管这一选项;如果要使用子网,那么请记住,网络中每一个系统必须有相同子网掩码。
tunel 建立隧道
dstaddr 设定一个远端地址,建立点对点通信
-broadcast<地址> 为指定网卡设置广播协议
-pointtopoint<地址> 为网卡设置点对点通讯协议
multicast 为网卡设置组播标志
address 为网卡设置IPv4地址
txqueuelen<长度> 为网卡设置传输列队的长度
⑤ linux 下用什么命令查本机的ip地址
ping 192.168.0.8
⑥ 怎么使用LINUX获取本机的网络接口eth1的IP地址和MAC地址
方法一:
$/sbin/ifconfig ethX | awk '/inet addr/ {print $2}' | cut -f2 -d ":"
方法二:
$/sbin/ifconfig ethX | awk '/inet addr/ {print $2}' | awk -F: '{print $2}'
方法三:
$/sbin/ifconfig ethX | sed -ne 's/\(.*\)addr:\([[:digit:].]*\)\(.*\)/\2/p'
把ethX中的X替换为需要查看网卡的序号,如eth0,eth1...
获得本机所有网卡的IPv4地址,方法如下:
$/sbin/ifconfig | awk '{if ( $1 == "inet" && $3 ~ /^Bcast/) print $2}' | cut -f2 -d ":"
如果是IPv6网络,把上面的命令做简单修改即可,如:
$/sbin/ifconfig | awk '/inet6/ {print $3}' ----全部
$/sbin/ifconfig ethX | awk '/inet6/ {print $3}' ----单个
⑦ linux操作系统本机IP储存在哪个文件夹
IP存储在/etc/sysconfig/network-scripts/ifcfg-eth0文件,其中包括IP地址、子网掩码、网关.
配置临时IP地址可以执行:
ifconfig eth0 IP地址 up
⑧ Linux 系统 本地IP地址怎么修改
1、命令行使用vi编辑器打开网卡配置文件ifcfg-eth0:
vi /etc/sysconfig/network-scripts/ifcfg-eth0
⑨ linux如何配置本机的ip地址啊
首先执行下面的命令看一下你的网卡的名字叫什么
例如下面的命令的执行结果显示,网瞳名字叫em1
# ifconfig
em1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
.........
然后编辑网址的配置文件/etc/sysconfig/network-scripts/ifcfg-网卡的名字。
继续以网卡em1为例(DHCP的情况下如下所示)
vi /etc/sysconfig/network-scripts/ifcfg-em1
HWADDR=90:00:1C:7F:09:0A
TYPE=Ethernet
BOOTPROTO=static
IPADDR=192.168.1.3
NETMASK=255.255.255.0
NETWORK=192.168.1.0
GATEWAY=192.168.1.1
DNS1=192.168.1.2
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=em1
ONBOOT=yes
PEERDNS=yes
PEERROUTES=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
⑩ Linux下如何查看本机的出口IP地址
给你解释一下。
你的局域网内的Linux服务器,服务器本身用的是内网IP,与外网是不能连接的。但是服务器可以通过连接一个防火墙或NAT或类似的设备来做到访问外网。当服务器要访问外网时,防火墙会将服务器发出的数据包的源IP替换成外网IP,当返回数据时,再将数据包的目的地址改成服务器的内网IP。当外网访问时也是一样的原理。
有什么命令可以查看该Linux服务器的访问外网时的IP地址?你可以直接查看防火墙的地址,也可以找一个显IP的网站。