Yanıtlar:
ipconfig getifaddr en1
Kablosuz veya ipconfig getifaddr en0
ethernet için kullanın .
Güncelleme :
ipconfig getifaddr en0
wifi arayüzü için varsayılandır.
ifconfig
tüm arayüzleri ve IP'lerini gösterir
curl -s http://checkip.dyndns.org/ | sed 's/[a-zA-Z<>/ :]//g'
Aşağıdakiler 10.8 ve 10.10 Yosemite'de benim için çalışıyor.
ifconfig | grep "inet " | grep -Fv 127.0.0.1 | awk '{print $2}'
Yukarıdakilerin birden fazla cevap verdiğini tespit ederseniz, aşağıdakileri bir komut dosyasına kaydedin ve bunun yerine çalıştırın.
#!/usr/bin/env bash
dumpIpForInterface()
{
IT=$(ifconfig "$1")
if [[ "$IT" != *"status: active"* ]]; then
return
fi
if [[ "$IT" != *" broadcast "* ]]; then
return
fi
echo "$IT" | grep "inet " | grep -v 127.0.0.1 | awk '{print $2}'
}
main()
{
# snagged from here: https://superuser.com/a/627581/38941
DEFAULT_ROUTE=$(route -n get 0.0.0.0 2>/dev/null | awk '/interface: / {print $2}')
if [ -n "$DEFAULT_ROUTE" ]; then
dumpIpForInterface "$DEFAULT_ROUTE"
else
for i in $(ifconfig -s | awk '{print $1}' | awk '{if(NR>1)print}')
do
if [[ $i != *"vboxnet"* ]]; then
dumpIpForInterface "$i"
fi
done
fi
}
main
Sadece curl ifconfig.me
terminali yazınız.
ipconfig getifaddr en0
yerel IP içindir.
Aşağıdakileri yapabilirsiniz:
Yazın ifconfig
ya ifconfig -a
. Bu komut size IP ve MAC adresleriyle birlikte arabirimlerin listesini gösterir (yalnızca sonuncusu). Ayrıca sadece belirli bir arayüzün konfigürasyonunu da yazabilir ifconfig en0
veya yazabilirsiniz ifconfig en1
(birisinin cevaplarında söylediği gibi, en0 tipik olarak kablolu Ethernet'tir, en1 ise WiFi arayüzüdür).
Alternatif olarak, netstat -i
tüm arayüzleri listeleyecek ve size her birine atadığınız IP adreslerini gösterecektir.
Tipik olarak, bir kutu üzerinde çalışan SSH cini olduğunda, mevcut tüm arayüzleri dinler, yani. Makinenize SSH aracılığıyla bağlanmak için yapılandırılmış olan herhangi bir IP adresini kullanabilirsiniz (bu, Açıkçası, Güvenlik Duvarı kurallarına tabidir). İşletim sisteminin Bir Birincil arayüzü ve birincil IP adresini çağırdığı şeyin peşindeyseniz, aşağıdaki scutil
komutu kullanabilirsiniz :
MacBook:~ scutil
> show State:/Network/Global/IPv4
<dictionary> {
PrimaryInterface : en0
PrimaryService : C0550F84-5C07-484F-8D62-C8B90DC977D8
Router : 10.103.4.1
}
> show State:/Network/Interface/en0/IPv4
<dictionary> {
Addresses : <array> {
0 : 10.103.4.234
}
BroadcastAddresses : <array> {
0 : 10.103.4.255
}
SubnetMasks : <array> {
0 : 255.255.255.0
}
}
Lütfen, yukarıdakilerin bir komut satırı komutu olmasına rağmen, etkileşimli olduğunu da unutmayın (bu nedenle koşun scutil
ve sonra kendi komutlarını girin). İlk show
komut, işletim sistemi için birincil arabirimin adını (yani, Sistem Yönlendirmeler / Ağ Tercihleri pencerenizdeki listenin üstünde olacak) ve varsayılan yönlendiricinizin IP adresini söyler. İkinci show
komut State:/Network/Interface/<ifname>/IPv4
argüman alır (bu durumda en0
) ve size atanan IP adreslerini verir. Adresler dizisindeki adresi arıyorsanız, diğer iki giriş yayın adresleri ve ağ maskeleridir.
Bu yardımcı olur umarım, ama bir şey açık değilse, bana bildirin.
echo "show State:/Network/Interface/$(echo 'show State:/Network/Global/IPv4' | scutil | grep 'PrimaryInterface ' | sed 's/ PrimaryInterface : //')/IPv4" | scutil | pcregrep -Mo1 " Addresses : <array> {\n 0 : ([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})"
Bilgisayarınızın IP adresini Internet’e dönük olarak almak için, çalışan bir makbuz:
if=`netstat -nr | awk '{ if ($1 ~/default/) { print $6} }'`
ifconfig ${if} | awk '{ if ($1 ~/inet/) { print $2} }'
Aktif olan çoklu arayüzleriniz olsa bile, hangisinin varsayılan ağ geçidi olduğunu bilmiyorsanız bile arayüzleriniz olsa bile çalışmalıdır.
192.168.0.*)
internete maruz kalan harici adresi değil.
netstat -nr | grep default
?
Sadece kayıt için, harici IP adresinizi veren aşağıdaki içerikle bir bash betiği yapabilirsiniz
#!/bin/bash
wget -qO - http://ipecho.net/plain; echo
wget
olarak macOS'un bir parçası değildir ve Apple dışı bir kaynaktan yüklenmelidir.
curl -s http://ipecho.net/plain; echo