Hoe het ip-adres van een server op Centos 7 in bash te krijgen

Voorheen gebruikte ik de volgende opdracht in bash om het hoofd-ip van mijn server te vinden

ipaddr=$(/sbin/ifconfig|grep inet|head -1|sed 's/\:/ /'|awk '{print $3}' | grep -v '127.0.0.1')

Maar in centos7 werkt het niet meer omdat ifconfig niet beschikbaar is en het commando niet meer werkt, zelfs niet als ik ifconfiginstalleer met behulp van yum install net-tools

Wat is het equivalente commando voor centos 7

Hartelijk dank


Antwoord 1, autoriteit 100%

U kunt de opdracht hostnaamgebruiken:

ipaddr=$(hostname -I)

-i, --ip-address:
Geef het (de) IP-adres(sen) van de host weer. Merk op dat dit alleen werkt als de hostnaam kan worden opgelost.

-I, --all-ip-addresses:
Toon alle netwerkadressen van de host. Met deze optie worden alle geconfigureerde adressen op alle netwerkinterfaces opgesomd. De loopback-interface en IPv6 link-local-adressen zijn weggelaten. In tegenstelling tot optie -i is deze optie niet afhankelijk van naamresolutie. Maak geen aannames over de volgorde van de uitvoer.


Antwoord 2, autoriteit 32%

Voer het commando ip addrin op de console


Antwoord 3, autoriteit 28%

Ref: https:/ /garbagevalue.com/blog/4-simle-ways-to-check-ip-adres-in-centos-7


Ik gebruik CentOS 7 en commando

ip a

is genoeg om het werk te doen.

Bewerken

Snijd gewoon het IP-adresgedeelte uit die test.

ip a | grep 192


Antwoord 4, autoriteit 3%

Zoiets – een riff op het antwoord van @maarten-vanlinthout

ip  -f inet a show eth0| grep inet| awk '{ print $2}' | cut -d/ -f1

Antwoord 5, autoriteit 3%

U kunt eenvoudige opdrachten uitvoeren zoals

curl ifconfig.co
curl ifconfig.me
wget -qO - icanhazip.com

Antwoord 6, autoriteit 3%

Als je geen gebruik wilt maken van externe bronnen (of niet kunt), zou ik het volgende aanraden:

DEVICE=$(ls -l /sys/class/net | awk '$NF~/pci0/ { print $(NF-2); exit }')
IPADDR=$(ip -br address show dev $DEVICE | awk '{print substr($3,1,index($3,"/")-1);}')

De eerste regel krijgt de naam van het eerste netwerkapparaat op de PCI-bus, de tweede regel geeft het IP-adres.

BTW ps ... | grep ... | awk ...
stinkt. awk heeft geen grep nodig.


Antwoord 7, autoriteit 3%

Beetje laat maar ik gebruik

curl -4 icanhazip.com 

retourneert het primaire IP-adres van de server.


Antwoord 8, autoriteit 3%

hostnaam -I | awk ‘ {print $1}’


Antwoord 9, autoriteit 2%

SERVER_IP="$(ip addr show ens160 | grep 'inet ' | cut -f2 | awk '{ print $2}')"

vervang ens160 door uw interfacenaam


Antwoord 10

Ik geloof dat de meest betrouwbare manier om het IP-adres van de externe server te krijgen, is om een externe service te gebruiken.

ipaddr=$(curl -s http://whatismyip.akamai.com/)


Antwoord 11

Voer deze opdracht uit om ip4 en ip6 weer te geven:

ifconfig eth0 | grep inet | awk '{print $2}' | cut -d/ -f1

Other episodes