當前位置:首頁 » 操作系統 » linuxc獲取ip地址

linuxc獲取ip地址

發布時間: 2023-03-27 10:04:10

1. 獲取linux IP地址的六種方法總結

    本文總結六種查看Linux IP地址的方法,方便以後的運維開發工作。

    在介紹前先學習一下三個命令行篩選的主要的指令,也是頻繁使用到的命令。

1、head。 head 命令可用於查看文件的開頭部分的內容,有一個常用的參數 -n 用於顯示行數,默認為 10。

運行head --help查看說明信息:

-q 隱藏文件名

-v 顯示文件名

-c<數目> 顯示的位元組數。

-n<行數> 顯示的行數。

2、grep。 grep 命令用於查找文件里符合條件的字元串。運行grep --help查看說明信息,參數太多主要有以下幾種:

grep -r遞歸選擇。

grep -v反選,顯示不包含匹配文本的所有行。

grep -n顯示符合樣式的那一行之前。

grep -A顯示符合範本樣式的那一列之外,並顯示該行之後的內容。

3、awk。 強大的文本分析工具,命令使用過於復雜(awk --help),只需要知道 awk '{print$2}'為列印第二行數據。

4、tail 。tail命令可用於查看文件的結束部分的內容,有一個常用的參數 -n 用於顯示行數,默認為 10。tail --help查看主要的參數:

tail -n顯示最後多少行

tail -c顯示最後十個字元

tail -f 循環讀取,跟蹤顯示最後十行

5、cut。 顯示每行從開頭算起的文字。

cut -b :以位元組為單位進行分割。

cut -c :以字元為單位進行分割

cut -d :自定義分隔符,默認為製表符

cut -f :與-d一起使用,指定顯示哪個區域

無線網卡地址:

echo wlan0=`ifconfig  wlan0 | head -n2 | grep inet | awk '{print$2}'`

有線網卡地址:

echo eth0=`ifconfig  eth0 | head -n2 | grep inet | awk '{print$2}'`

或者命令:

ifconfig | grep "inet " | cut -d: -f2 | awk '{print $1}' | grep -v "^127."

無線網卡地址:

ip address | grep wlan0 | awk '{print$2}'

有線網卡地址:

ip address | grep eth0 | awk '{print$2}'

或者

echo eth0=`ip address show  eth0 | head -n4 | grep inet | awk '{print$2}'

echo wlan0=`ip address show wlan0 | head -n4 | grep inet | awk '{print$2}'

運行hostname -help命令查看說明信息:

Program options:

    -a, --alias            alias names

    -A, --all-fqdns        all long host names (FQDNs)

    -b, --boot            set default hostname if none available

    -d, --domain          DNS domain name

    -f, --fqdn, --long    long host name (FQDN)

    -F, --file            read host name or NIS domain name from given file

    -i, --ip-address      addresses for the host name

    -I, --all-ip-addresses all addresses for the host

    -s, --short            short host name

    -y, --yp, --nis        NIS/YP domain name

hostname -i得到環回地址127.0.1.1, hostname -I得到具體的網卡信息192.168.31.82 。

php語言查看ip就是使用函數shell_exec來執行shell命令。

比如:

<?php

  echo shell_exec("echo wlan0=`ifconfig  wlan0 | head -n2 | grep inet | awk '{print$2}'`");

?>

然後執行php ip.php 。shell_exec()裡面可以放置任何shell命令。這個方法的意義在於php可以通過網頁對外提供服務。

#!/usr/bin/env python

import socket

import fcntl

import struct

def get_ip_address(ifname):

    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

    return socket.inet_ntoa(fcntl.ioctl(

      s.fileno(),

      0x8915,  # SIOCGIFADDR

      struct.pack('256s', ifname[:15])

  )[20:24])

Local_wlan0=get_ip_address("wlan0")

Local_lo=get_ip_address("lo")

#Local_eth0=get_ip_address("eth0")

print Local_wlan0

print Local_lo

#print Local_eth0

利用socket包,然後執行python  ip.py 得到wlan0信息。

#!/usr/bin/env python

import os

def get_ip():

out = os.popen("echo wlan0=`ifconfig  wlan0 | head -n2 | grep inet | awk '{print$2}'`").read()

print out

if __name__ == '__main__':

get_ip()

和php的shell_exec函數類似,os.popen()裡面可以放置任何shell命令。注意有個函數os.system的結果只是命令執行結果的返回值,執行成功為0;os.popen()可以讀出執行的內容,輸出的結果比較特殊,帶換行符\n 。

2. Linux查詢IP地址

3. Kali Linux常用服務配置教程獲取IP地址

下面以Kali Linux為例,演示獲取IP地址的方法

(1)設置網路介面為自動獲取IP地址。在Kali Linux的收藏夾中單擊圖標,將顯示所有的程序,如圖1.8所示。

(2)單擊「設置」圖標,將打開「設置」窗口,如圖1.9所示。

(3)選擇「網路」選項,單擊有線連接中的齒輪按鈕,將顯示「有線」對話框,如圖1.10所示。

(4)勾選「自動連接」復選框。然後,單擊IPv4標簽,將顯示IPv4選項卡,如圖1.11所示。

(5)在該界面選擇「自動(DHCP)」選項。然後,單擊「應用」按鈕。接下來,就可以請求獲取IP地址了。執行命令如下所示:

root@daxueba:~# dhclient eth0 –d

Internet Systems Consortium DHCP Client 4.3.5

Copyright 2004-2016 Internet Systems Consortium.

All rights reserved.

For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/eth0/00:0c:29:25:89:95

Sending on LPF/eth0/00:0c:29:25:89:95

Sending on Socket/fallback

DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 4

DHCPREQUEST of 192.168.0.12 on eth0 to 255.255.255.255 port 67

DHCPOFFER of 192.168.0.12 from 192.168.0.10

DHCPACK of 192.168.0.12 from 192.168.0.100

bound to 192.168.0.12 -- renewal in 277 seconds.

從輸出的信息中,可以看到成功獲取到IP地址192.168.0.12。由此可以說明,搭建的DHCP服務測試成功。此時,用戶查看地址租約文件dhcpd.leases,也可以看到分配的IP地址。如下所示:

root@daxueba:~# cat /var/lib/dhcp/dhcpd.leases

# The format of this file is documented in the dhcpd.leases(5) manual page.

# This lease file was written by isc-dhcp-4.3.5

# authoring-byte-order entry is generated, DO NOT DELETE

authoring-byte-order little-endian;

lease 192.168.0.10 {

 starts 1 2018/07/02 10:15:00;

 ends 1 2018/07/02 10:25:00;

 cltt 1 2018/07/02 10:15:00;

 binding state active;

 next binding state free;

 rewind binding state free;

 hardware ethernet 00:0c:29:5c:ae:aa;

 client-hostname "daxueba";

}

lease 192.168.0.11 {

 starts 1 2018/07/02 10:18:17;

 ends 1 2018/07/02 10:28:17;

 cltt 1 2018/07/02 10:18:17;

 binding state active;

 next binding state free;

 rewind binding state free;

 hardware ethernet 00:0c:29:99:92:4f;

 uid "\001\000\014)\231\222O";

 set vendor-class-identifier = "MSFT 5.0";

 client-hostname "Test";

}

lease 192.168.0.12 {

 starts 1 2018/07/02 10:34:56;

 ends 1 2018/07/02 10:44:56;

 cltt 1 2018/07/02 10:34:56;

 binding state active;

 next binding state free;

 rewind binding state free;

 hardware ethernet 00:0c:29:25:89:95;

 client-hostname "daxueba";

}

從輸出的信息中,可以看到DHCP服務分配出去的IP地址及對應租約信息。

4. linux C自動獲取區域網可用IP

提供一個思路:

可以用libpcap,先不設置IP,設置網口為混雜模式,抓取一定時間的包,然後統計包裡面沒被使用的IP地址,如果一個IP被使用,必定在網路中會有ARP通信。

5. linux 系統中怎麼查找ip地址

隨著xp的退役,國產操作系統逐漸成為熱點話題,基於linux內核的國產操作系統是否能夠被大眾接受是一個至關重要的問題,那麼linux的基本操作中,如何查看本機的ip地址呢?下面小編就以ubuntu為例,來解釋這個問題。
方法/步驟
打開搜索功能,輸入terminal(終端),類似於windows下的cmd窗口,這里我們可以輸入命令來對系統進行操作,功能十分強大!
ifconfig可以查看當前主機的ip地址;
如果要手動更改ip地址。可以輸入命令cd
/etc/sysconfig/network下
在這個目錄下會有
類似於ifcfg-@@的文件。可以用vi命令來修改ip。

6. 怎麼用C語言獲取Linux系統的網卡IP地址

#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<string.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<net/if.h>
#include<netdb.h>
#include<arpa/inet.h>
#include<sys/ioctl.h>

//獲取地址
//返回IP地址字元串
intgetlocalip(char*outip)
{
inti=0;
intsockfd;
structifconfifconf;
charbuf=(char)malloc(512);
structifreq*ifreq;
char*ip;

//初始化ifconf
ifconf.ifc_len=512;
ifconf.ifc_buf=buf;

if((sockfd=socket(AF_INET,SOCK_DGRAM,0))<0)
{
return-1;
}
ioctl(sockfd,SIOCGIFCONF,&ifconf);//獲取所有介面信息
close(sockfd);
//接下來一個一個的獲取IP地址
ifreq=(structifreq*)buf;
i=ifconf.ifc_len/sizeof(structifreq);
char*pos=outip;
intcount;
for(count=0;(count<5&&i>0);i--)
{
ip=inet_ntoa(((structsockaddr_in*)&(ifreq->ifr_addr))->sin_addr);

if(strncmp(ip,"127.0.0.1",3)==0)//排除127.x.x.x,繼續下一個
{
ifreq++;
continue;
}else
{
printf("%s ",ip);
strcpy(pos,ip);
intlen=strlen(ip);
pos=' ';
pos+=len+1;
count++;
ifreq++;
}
}
free(buf);
return0;
}
//——————————-函數的調用方式————————————-
intmain(intargc,char**argv)
{
charip={'*'};

if(getlocalip(ip)==0)
{
printf("本機IP地址是:%s ",ip);
}
else
{
printf("無法獲取本機IP地址");
}
return0;
}

7. linux c怎麼獲得IPv6地址

編輯文件/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="dhcp"
#BOOTPROTO="static"
HWADDR="2C:27:D7:31:2C:4C"
#IPADDR="192.168.0.2"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
保證IPV6選項為YES ,所處環境中有IPV6網路的話就可以自動獲行培取檔穗唯了.自己也可以用linux搭建一個.
然後用ifconfig eth0 查看網族中卡信息參數

8. Linux如何自動獲取IP地址

第一步:激活網卡 系統裝好後默認的網卡是eth0,用下面的命令將這塊網卡激活。 # ifconfig eth0 up 第二步:設置網卡進沒兄攔入系統時啟動想要每次開機就可以自動獲取IP地址上網,就要設置網路服務在系統啟動時也啟動。Linux有一點與windows不同的是很多服務默認是停止的,枯胡而且你在某次使用該服務時啟動這個服務,但是沒設置它為默認啟動,則下次進入系統這個服務依然是停止的。下面是設置網路服務在系統啟動時也啟動的方法。使用chkconfig命令讓網路服務在系統啟動級別是2345時默認啟動。# chkconfig --level 2345 network on第三步:修改網卡文件ifcfg-eth0修改ifcfg-eth0文件,設置ONBOOT的值為yes,讓網路服務啟動時使用該網卡。設置BOOTPROTO的值為dhcp,讓網卡從DHCP伺服器自動獲取IP地址。# vi /etc/sysconfig/network-scripts/ifcfg-eth0ONBOOT=yesBOOTPROTO=dhcp總結:通常情況下第三步是最重要的,因為大部分Linux系統默認網路服務是系統啟動時也啟動的,網卡也是啟用的塵攜,只要設置好第三步,然後使用下面的命令啟動網路服務就OK。# service network start配置靜態IP地址上網與動態IP地址上網同出一轍,修改ifcfg-eth0,然後用命令service network retart重啟網路服務。DEVICE=eth0 IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS=8.8.8.8 BOOTPROTO=static ONBOOT=yesdebian: 編輯/etc/network/interfaces# The loopback network interfaceauto loiface lo inet loopback # The primary network interface allow-hotplug eth0auto eth0iface eth0 inet static address 192.168.1.36 netmask 255.255.255.0 gateway 192.168.1.10 #公司的網關是192.168.1.10,一般是192.168.1.1 保存編輯結果,並重啟網路服務

9. linux下怎麼獲取當前能連上網的那個ip地址

一、Linux下為機器設置靜態IP地址:
vim /etc/sysconfig/network-scripts/ifcfg-eth0
修改這個文件內容如下形式:
# Intel Corporation 82541GI Gigabit Ethernet Controller
DEVICE=eth0
BOOTPROTO=static #為靜態的
HWADDR=00:15:17:B2:DC:B5
ONBOOT=yes
IPADDR=10.20.134.199 #這個是設置的靜態IP地址
NETMASK=255.255.254.0
GATEWAY=10.20.134.1 #網關
修改哪敗後,需要重啟網路是更改生效:
/etc/init.d/network restart
二、自動獲取動態IP地址方式:
vim /etc/sysconfig/network-scripts/李伏顫ifcfg-eth1
內容如下:
# Intel Corporation 82566DM-2 Gigabit Network Connection
DEVICE=eth1
BOOTPROTO=dhcp #動態獲取IP
HWADDR=00:15:17:B2:DC:B7
ONBOOT=no
運行命令:廳灶
dhclient eth1
自動獲取動態IP地址
可以通過:ifconfig查看分配的IP地址。

10. Linux下如何通過編程得到DNS ip地址和默認網關ip地址。(C 語言)

方案一:
你用C語言去讀取/etc/resolv.conf,格式是namserver *.*.*.* 提取以下 就有DNS了
至於網關 你可以去讀取/etc/sysconfig/network /etc/sysconfig/network-scripts/ifcfg-eth0等文件,但是各個Linux系統可能少有差別。

方案二:
在C程序中調用exec函數,執行route命令,從返回的結果中提取網關
至於DNS 也可以通過dig localhost, 從結果中提取DNS 但是就沒有方案一中快了

熱點內容
玩火影筆記本要什麼配置 發布:2024-04-25 08:34:59 瀏覽:208
sql性能監視器 發布:2024-04-25 08:21:48 瀏覽:832
吃雞ak配置什麼最好 發布:2024-04-25 08:15:46 瀏覽:447
firefox緩存目錄 發布:2024-04-25 08:00:31 瀏覽:940
我的世界國服怎麼免費弄伺服器 發布:2024-04-25 08:00:16 瀏覽:540
javaapi源碼 發布:2024-04-25 07:51:15 瀏覽:606
怎麼在伺服器執行jmeter腳本 發布:2024-04-25 07:35:25 瀏覽:397
域名訪問https 發布:2024-04-25 07:16:56 瀏覽:414
javaie亂碼 發布:2024-04-25 07:07:15 瀏覽:602
php開發微信支付 發布:2024-04-25 06:57:38 瀏覽:317