it-swarm.com.de

So erhalten Sie die IP-Adresse eines Servers auf Centos 7 in Bash

Zuvor habe ich in bash den folgenden Befehl verwendet, um die Haupt-IP meines Servers zu finden

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

In centos7 funktioniert es nicht mehr, da ifconfig nicht verfügbar ist und der Befehl nicht mehr funktioniert, auch wenn ich ifconfig mit yum install net-tools installiere.

Wie lautet der entsprechende Befehl für Centos 7

Danke vielmals

31
user2650277

Sie können hostname command verwenden:

ipaddr=$(hostname -I)
75
Alexander

Geben Sie an der Konsole den Befehl ip addr ein

 enter image description here

21
Rijul Sudhir

Ich benutze Centos 7 und Kommando

ip a

ist genug, um die Arbeit zu erledigen. 

 enter image description here

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

ersetzen Sie ens160 durch Ihren Schnittstellennamen

2

Sie können einfache Befehle wie ausführen

curl ifconfig.co

curl ifconfig.me

wget -qO - icanhazip.com
1
Kernel

Wenn Sie keine externen Quellen verwenden möchten (oder nicht können), würde ich Folgendes empfehlen:

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);}')

In der ersten Zeile steht der Name des ersten Netzwerkgeräts am PCI-Bus, in der zweiten Zeile die IP-Adresse.

BTW ps ... | grep ... | awk ... stinkt. awk braucht kein grep.

1
Tuxinose

So etwas - ein Riff auf @ maarten-vanlinthouts Antwort

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

Ich glaube, dass der zuverlässigste Weg, die IP-Adresse des externen Servers zu ermitteln, die Verwendung eines externen Dienstes ist.

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

0
user2650277

Etwas spät aber ich benutze

curl -4 icanhazip.com 

gibt die primäre IP-Adresse des Servers zurück.

0
William Turner