Yanıtlar:
ipconfig getifaddr en1Kablosuz veya ipconfig getifaddr en0ethernet için kullanın .
Güncelleme :
ipconfig getifaddr en0 wifi arayüzü için varsayılandır.
ifconfigtü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.meterminali yazınız.
ipconfig getifaddr en0yerel IP içindir.
Aşağıdakileri yapabilirsiniz:
Yazın ifconfigya 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 en0veya 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 -itü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 scutilkomutu 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 scutilve sonra kendi komutlarını girin). İlk showkomut, 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 showkomut State:/Network/Interface/<ifname>/IPv4argü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
wgetolarak macOS'un bir parçası değildir ve Apple dışı bir kaynaktan yüklenmelidir.
curl -s http://ipecho.net/plain; echo