Isso mostra o meu endereço IP interno (para o meu roteador) (por exemplo, 192.168.1.xxx), não o endereço IP externo. (Como fazem a maioria das outras respostas abaixo.)
ShreevatsaR
2
Não funcionou para mim :(
Naveed Abbas 13/16
2
ifconfigmostra todas as interfaces e seus IPs
Aralar
4
eco IP externo:curl -s http://checkip.dyndns.org/ | sed 's/[a-zA-Z<>/ :]//g'
grigb
30
Ele mudou durante anos, 'ipconfig getifaddr en0' é padrão para interface de wi-fi
Marek Szmalc
98
O seguinte funciona para mim no 10.8 e no 10.10 Yosemite.
Deve ser a resposta aceita na minha opinião, pois não requer nenhuma especificação com fio ou sem fio.
Erik Nomitch
@ErikNomitch exceto que ele me dá 2 com esta resposta
Zach Lysobey
Ah, eu me retiro então. @ZachLysobey
Erik Nomitch
essa é a melhor abordagem geral, mas às vezes é preciso fazer um pouco mais de grepping antes do awk para obter a resposta certa e a resposta certa pode variar.
uchuugaka 02/09
Eu adicionei um script que espero resolver esse problema .. fyi!
Digite ifconfigou ifconfig -a. Este comando mostra a lista de interfaces, juntamente com seus endereços IP e MAC (o último apenas se aplicável). Você também pode digitar ifconfig en0ou apenas ifconfig en1para a configuração de uma interface específica (como alguém disse em suas respostas, en0 normalmente é a Ethernet com fio enquanto en1 é a interface WiFi).
Como alternativa, netstat -ilistará todas as interfaces e mostrará os endereços IP que você atribuiu a cada uma delas.
Normalmente, quando você tem um daemon SSH em execução em uma caixa, ele escuta todas as interfaces disponíveis, por exemplo. você pode usar qualquer endereço IP configurado em sua máquina para conectar-se a ela via SSH (isso, obviamente, está sujeito às regras do firewall). Se você procura o que o sistema operacional chama de interface primária e endereço IP primário, pode usar o scutilcomando da seguinte maneira:
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}}
Observe que o acima, embora seja um comando de linha de comando, também é interativo (para que você execute scutile insira seus próprios comandos nele). O primeiro showcomando informa o nome da interface principal do sistema operacional (ou seja, essa é a que está no topo da lista na janela Preferências do sistema / Preferências de rede), bem como o endereço IP do seu roteador padrão. O segundo showcomando aceita o State:/Network/Interface/<ifname>/IPv4argumento (neste caso en0) e fornece os endereços IP atribuídos a ele. Você está procurando o endereço na matriz Addresses, as outras duas entradas são endereços de broadcast e máscaras de rede.
Espero que ajude, mas se alguma coisa não estiver clara, me avise.
Obrigado por esta resposta. Eu escrevi um script rápido para obter o IP da sua interface principal: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})"
DC_ 14/01/15
4
Para obter o endereço IP do seu computador voltado para a Internet, aqui está uma receita de trabalho:
Deverá funcionar mesmo quando você tiver várias interfaces ativas, mesmo quando você tiver interfaces, você não sabe qual é realmente o gateway padrão.
Isto torna-se o endereço IP da rede interna (por exemplo: 192.168.0.*), não a externa exposta à internet.
SimplGy
Obrigado por esse feedback. Você poderia me dizer em qual versão do sistema operacional você é? Você poderia me fornecer a saída de netstat -nr | grep default?
dan
Isso obtém o IP da interface que atende ao tráfego de entrada / saída. Se você está atrás do NAT, isso fornecerá o seu endereço LAN, não o endereço WAN. Mas pode ser útil para muitos propósitos e não alcança a rede.
folex
1
Apenas para o registro, você pode criar um script bash com o seguinte conteúdo, que fornece seu endereço IP externo
Respostas:
Use
ipconfig getifaddr en1
para conexão sem fio ouipconfig getifaddr en0
para Ethernet.Atualização :
ipconfig getifaddr en0
é o padrão para a interface wifi.fonte
ifconfig
mostra todas as interfaces e seus IPscurl -s http://checkip.dyndns.org/ | sed 's/[a-zA-Z<>/ :]//g'
O seguinte funciona para mim no 10.8 e no 10.10 Yosemite.
Se você achar que o acima fornece mais de uma resposta, salve o seguinte em um script e execute-o
ip_address.sh
fonte
Basta digitar
curl ifconfig.me
o terminal.fonte
ipconfig getifaddr en0
é para IP local.Eu tenho isso configurado em um .aliases dotfile para pesquisa frequente de ip:
fonte
Você pode fazer o seguinte:
Digite
ifconfig
ouifconfig -a
. Este comando mostra a lista de interfaces, juntamente com seus endereços IP e MAC (o último apenas se aplicável). Você também pode digitarifconfig en0
ou apenasifconfig en1
para a configuração de uma interface específica (como alguém disse em suas respostas, en0 normalmente é a Ethernet com fio enquanto en1 é a interface WiFi).Como alternativa,
netstat -i
listará todas as interfaces e mostrará os endereços IP que você atribuiu a cada uma delas.Normalmente, quando você tem um daemon SSH em execução em uma caixa, ele escuta todas as interfaces disponíveis, por exemplo. você pode usar qualquer endereço IP configurado em sua máquina para conectar-se a ela via SSH (isso, obviamente, está sujeito às regras do firewall). Se você procura o que o sistema operacional chama de interface primária e endereço IP primário, pode usar o
scutil
comando da seguinte maneira:Observe que o acima, embora seja um comando de linha de comando, também é interativo (para que você execute
scutil
e insira seus próprios comandos nele). O primeiroshow
comando informa o nome da interface principal do sistema operacional (ou seja, essa é a que está no topo da lista na janela Preferências do sistema / Preferências de rede), bem como o endereço IP do seu roteador padrão. O segundoshow
comando aceita oState:/Network/Interface/<ifname>/IPv4
argumento (neste casoen0
) e fornece os endereços IP atribuídos a ele. Você está procurando o endereço na matriz Addresses, as outras duas entradas são endereços de broadcast e máscaras de rede.Espero que ajude, mas se alguma coisa não estiver clara, me avise.
fonte
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})"
Para obter o endereço IP do seu computador voltado para a Internet, aqui está uma receita de trabalho:
Deverá funcionar mesmo quando você tiver várias interfaces ativas, mesmo quando você tiver interfaces, você não sabe qual é realmente o gateway padrão.
fonte
192.168.0.*)
, não a externa exposta à internet.netstat -nr | grep default
?Apenas para o registro, você pode criar um script bash com o seguinte conteúdo, que fornece seu endereço IP externo
fonte
wget
não faz parte do macOS e precisa ser instalado de uma fonte que não seja da Apple.curl -s http://ipecho.net/plain; echo