Ich muss die lokale IP-Adresse des Github-Runners herausfinden, der macOS 11 verwendet. Ich brauche diese für meine Integrationstests.
Ich habe es versucht:
LOCAL_IP=ifconfig | grep "inet " | grep -Fv 127.0.0.1 | awk '{print $2}'
SERVER_URL="http://${LOCAL_IP}:5000"
Dies gab mir jedoch nur:http://:5000
Welches ist der richtige Befehl dafür?
LOCAL_IP=ifconfig | grep "inet " | grep -Fv 127.0.0.1 | awk '{print $2}'
legt die Variable fest LOCAL_IP
, um ifconfig
einen leeren Befehl auszuführen, und sendet die leere Ausgabe dieses leeren Befehls an die Pipe, die aus | grep "inet " | grep -Fv 127.0.0.1 | awk '{print $2}'
. Wird also LOCAL_IP
nie hinterher eingestellt.
Was Sie wahrscheinlich ausführen möchten, ist
LOCAL_IP=$(ifconfig | grep 'inet ' | grep -Fv 127.0.0.1 | awk '{print $2}')
was vereinfacht werden kann
LOCAL_IP=$(ifconfig | awk '/inet /&&!/127.0.0.1/{print $2}')
Leider gibt dies auf Macs, die sowohl über Ethernet als auch über WLAN verbunden sind, zwei Zeilen zurück. Daher ist es wahrscheinlich sicherer zu verwenden
LOCAL_IP=$(ifconfig | awk '/inet /&&!/127.0.0.1/{print $2;exit}')
Dadurch wird die erste gefundene Netzwerkschnittstelle / IP-Adresse ausgewählt.
Die lokale IP-Adresse kann mit dem folgenden Befehl abgerufen werden:
ipconfig getifaddr en0
oder en1
, abhängig von Ihrem Mac und Ihrer Verbindung.
/Users/runner/work/_temp/f51fbf9d-2251-420a-ad21-c16451b2e107.sh: line 4: getifaddr: command not found
ipconfig getifaddr en0
.getifaddr
wie Sie in der obigen Fehlermeldung sehen können.ipconfig
, getifaddr en0
sind die Parameter.en7
. Während en0
und en1
im Allgemeinen hängt es wirklich davon ab, welchen Mac man hat und wie er für die Verbindung mit dem LAN eingerichtet ist.Hier ist eine weitere Option, die für Sie nützlich sein könnte.
Dieser Befehl erstellt eine Variable mit der lokalen IP-Adresse.
LOCAL_IP=$(osascript -e "IPv4 address of (system info)")
Dieser Befehl gibt die in gespeicherte lokale IP-Adresse zurück$LOCAL_IP
echo $LOCAL_IP
Sie können dies in Python tun, ohne einen Schnittstellennamen anzugeben:
python -c 'import socket; print(socket.gethostbyname(socket.gethostname()))'
kein Hang
DarkMath
mmmmmm
DarkMath
Tetsujin
DarkMath
Tetsujin
mmmmmm
DarkMath