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的網站。