Estou surpreso que isso ainda não tenha sido um desafio.
Envie o endereço IP da máquina em que você está executando. Você é obrigado a enviar os endereços IP locais e externos.
Endereço IP local, ou seja, no formato padrão 192.168.xx
O endereço IP público pode ser verificado usando o google https://www.google.co.uk/search?source=hp&q=whats+my+ip
A saída pode estar em qualquer formato. IPv4 ou IPv6 ou qualquer combinação de cada um é permitido, no entanto, eles devem ser a única saída. O código pode ser um programa completo ou uma função.
as regras code-golf se aplicam para que os códigos mais curtos sejam ganhos.
As brechas padrão são proibidas.
EDIT: De acordo com o comentário de Peter Taylor, no caso de vários endereços de um ou outro tipo estarem presentes, você pode escolher a saída do primeiro ou o maior número possível de acessos. Desde que pelo menos um local e um público estejam presentes.
0/1
coisa adiciona fluff desnecessário ao desafio.Respostas:
Bash + ondulação + iproute2 ,
54 50 49 4833 bytesObrigado @DomHastings por jogar fora 1 byte!
Obrigado @Sisyphus por criar um URL mais curto!
Obrigado @ zeppelin por jogar fora 9 bytes!
fonte
1/0
peça gera um erro para STDERR, mas isso é ignorado por padrão, se você obtiver uma saída diferenteip route
, essa poderia ser apenas a versão que eu estava executando na minha máquina. Vergonha!1000
para mim ...ip route get 1
de saída: ptpb.pw/pixxRTNETLINK answers: Network is unreachable
awk 'NR<2&&$0=$7'
Bash
373127 bytesIsso é inspirado na resposta de Bruce Forte . Essa resposta funciona apenas com IPv4, o que significa que não funciona para mim. Eu o reescrevi em uma versão que (apenas) funciona com IPv6:
Isso é testado no Ubuntu 14.04.5 conectado via PPPoE e, como o IPv6 foi projetado para ser usado sem NAT, ele emitirá o mesmo endereço IP duas vezes.
-6 bytes graças ao zeppelin , -2 bytes graças ao Ferrybig , -2 bytes graças ao Markasoftware .
fonte
'{print$11,$11}'
para'{print$9,$9}'
fazer o trabalho de comando, o comando retornou 1024 2 vezes, o comando funciona na minha máquina Ubuntu 16.04.2ip route
não saída daproto ra
peça, você pode usar isso como um recurso para golf a sua resposta aindaproto static
não diz issoproto ra
, embora essa diferença não importe para esse código.awk '$0=$9" "$9'
vez de{print$11,$11}
. Muitos sistemas (incluindo o meu Arch) usar a palavra dia 9, por isso é mais curto do que 11, e também usando esta sintaxe é menor do que print $ 9, US $ 9Mathematica, 17 bytes
O Mathematica tem um builtin para tudoConforme descrito na documentação , este comando interno lista todos os endereços IP (locais e externos) associados ao seu dispositivo.
fonte
WolframAlpha["ip address", {{"IPAddress:InternetData", 1}, "ComputableData"}][[1,2]]
mas não sei como chegar a isso mais diretamente.AutoIt,
5653 bytes@IPAddress1
é uma macro que retorna_GetIP()
retorna-3 bytes graças a @ mınxomaτ
fonte
C #,
196194188163 bytesEconomizou 2 bytes graças a @Xynos.
Economizou 25 bytes graças a @Nick.
Versão completa / formatada:
fonte
i.AddressFamily
para, emint
vez de converter2
paraAddressFamily
, e pode substituirDns.GetHostName()
pela string vazia.namespace
truque for bastante comum para C #. Se você acha que isso não deveria ser permitido, você pode postar uma meta sobre isso, mas no momento é um jogo justo e um truque legal para encurtarusing
s.PowerShell v4 +,
4036 bytes(Funciona apenas no Server 2012 R2 ou superior ou no Windows 8.1 ou superior. Não funciona no TIO.)
Faz exatamente o que diz na lata. Obtém os endereços IP da rede local e seleciona apenas a
IPA
parte do endereço (por exemplo, filtra a máscara de sub-rede, o gateway etc.).O segundo é um
Invoke-WebRequest
aohttp://eth0.me
qual simplesmente obtém oC
seu ponto inicial; ou seja, apenas o endereço IP público.Versão não destruída:
fonte
Get-
Shell Unix + stunclient , 40 bytes
Faz uso de um protocolo STUN :
O nome do servidor STUN é da lista de servidores Public STUN .
O formato de saída é:
Observe que as duas linhas serão recuadas com um único espaço, mas acredito que isso não viola as regras de saída conforme gravadas.
Saída de amostra:
fonte
ondulação (uma linha do bash): 27 bytes
O resultado é impresso
stdout
e fica assim:curl
deve ter pelo menos a versão 7.29.0 (de 6 de fevereiro de 2013).A resposta é baseada em /codegolf//a/139538/66016 .
fonte
Ir, apenas MacOS, 10 bytes
No macOS, esse killswitch pode ser usado, pode imprimir o IP ativo privado atual e o IP público:
Esta não é uma ferramenta interna, mas tenta simplificar o processo de localização dos IPs apropriados.
A saída pode ser obtida usando comandos como:
IP público:
fonte
PowerShell v3 + (resposta alternativa para windows 7+)
fonte
-match
ao redor para salvar alguns bytes.Bash + Awk + Ondulação, 43 bytes
usando apenas ferramentas integradas para Mac e Linux
fonte
Python 3,
124133 bytesfonte
print a,b
? Curiosamente, isso gera dois IPs no meu sistema (Win7), mas nenhum deles é o meu endereço IP local real.b
é realmente o IP de um adaptador virtual e não a minha conexão local .Node.js (JavaScript)
224223194175173130 bytesVersão não destruída:
.get()
vez de.request()
-.end();
removido).require
econsole.log
em variáveis de uma letra, passou o URL diretamente pararequire('http').get
, saída registrada diretamente dodata
evento).fonte
.get()
vez de.request()
. Então você também não precisa do.end();
.(a)=>
=>a=>
), IIRC.require
chamadas, então deixarei por enquanto. Obrigado pela sugestão de qualquer maneira.Arquivo em lote do Windows , 116 bytes
A primeira linha repete os resultados da execução
ipconfig
e obtém o seu endereço IPv4 local.Na parte de IP público, tive que roubar um pouco da maravilhosa resposta do Powershell porque, até onde eu sei, não há como obter o IP público da máquina usando apenas scripts em lote.
Começamos com um
@
sinal, para suprimir o eco do prompt (C:\...\path>
), depois executamos o comando PowershellInvoke-WebRequest
(com seu aliasiwr
) e extraímos acontent
parte dele.Experimentei não usar
(...).content
e, em vez disso, apenas executar o comando e extrair as informações reais da saída completa, usando o lote. Mas isso provou ser muito mais longo que esta solução, então eu a mantive.Testado no Windows 10.0.15063.
fonte
R,
142,140, 137 bytesTestado em win10 e R (3.4.1).
Obrigado por @ Bruce-Forte pelo URL curto.
Versão não destruída:
fonte
a <- nchar(x)
pora=nchar(x)
Python 2.7.13 128 bytes
fonte
Bash + Curl, 24 bytes
fonte
MS-SQL, 59 bytes
Retorna o endereço IP do cliente da instância SQL que está executando a consulta.
fonte
VBA, 58 bytes
Ops, não lida com o endereço local - correção em andamento
Função de janela imediata VBE anônima que não recebe entrada e gera o endereço IP do usuário por meio de uma janela do Internet Explorer
fonte