当前位置:首页 » 操作系统 » 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-05-04 21:18:59 浏览:189
扫雷电脑配置低怎么办 发布:2024-05-04 21:07:37 浏览:819
微云缓存文件在哪里 发布:2024-05-04 20:53:07 浏览:507
咸阳市移动dns服务器地址 发布:2024-05-04 20:39:19 浏览:441
小车哪个配置好 发布:2024-05-04 20:38:38 浏览:796
周长的算法 发布:2024-05-04 20:37:46 浏览:370
保卫萝卜2安卓版什么时候更新 发布:2024-05-04 20:08:48 浏览:203
建工党建宣传片脚本 发布:2024-05-04 20:07:31 浏览:219
long在c语言中 发布:2024-05-04 19:54:39 浏览:782
svn在本地文件夹 发布:2024-05-04 19:50:21 浏览:447