Я удивлен, что это еще не было проблемой.
Выведите IP-адрес компьютера, на котором вы работаете. Вам необходимо вывести как локальные, так и внешние IP-адреса.
Локальный IP-адрес, т.е. по умолчанию формат 192.168.xx
Общедоступный IP-адрес можно проверить с помощью Google https://www.google.co.uk/search?source=hp&q=whats+my+ip.
Вывод может быть в любом формате. IPv4 или IPv6 или любое сочетание каждого из них разрешено, однако они должны быть единственным выходом. Код может быть полной программой или функцией.
применяются правила игры в гольф, поэтому выигрывает самый короткий код.
Стандартные лазейки запрещены.
РЕДАКТИРОВАТЬ: Согласно комментарию @Peter Taylor, в случае, когда присутствуют несколько адресов любого типа, вы можете выбрать либо вывод первого, либо столько, сколько вы можете получить. Пока присутствуют хотя бы один местный и один общественный.
0/1
это добавляет ненужного пуха к вызову.Ответы:
Bash + curl + iproute2 ,
54 50 49 4833 байтаСпасибо @DomHastings за игру в 1 байт!
Спасибо @Sisyphus за более короткий URL!
Спасибо @zeppelin за 9 байтов!
источник
1/0
часть выводит ошибку в STDERR, но она игнорируется по умолчанию, если вы получаете другой вывод,ip route
хотя, это может быть просто версия, которую я запускал на своем компьютере. Позор!1000
для меня ...ip route get 1
вывод: ptpb.pw/pixxRTNETLINK answers: Network is unreachable
awk 'NR<2&&$0=$7'
Баш
373127 байтЭто навеяно ответом со стороны Брюса Forte . Этот ответ работает только с IPv4, что означает, что он не работает для меня. Я переписал его в версию, которая (только) работает с IPv6:
Это проверено на Ubuntu 14.04.5, подключенном через PPPoE, и, поскольку IPv6 предназначен для использования без NAT, он будет выводить один и тот же IP-адрес дважды.
-6 байт благодаря дирижабле , -2 байт благодаря Ferrybig , -2 байт благодаря Markasoftware .
источник
'{print$11,$11}'
чтобы'{print$9,$9}'
сделать командную работу, ваша команда возвратила 1024 2 раза, ваша команда работает на моей Ubuntu 16.04.2 машиныip route
не выводитсяproto ra
, вы можете использовать это как функцию, чтобы ещеproto static
нетproto ra
, хотя это различие не имеет значения для этого кода.awk '$0=$9" "$9'
вместо{print$11,$11}
. Многие системы (в том числе и моя Arch) используют 9-е слово, поэтому оно короче 11, и этот синтаксис меньше, чем print $ 9, $ 9Mathematica, 17 байт
Mathematica имеет встроенный для всегоКак описано в документации , эта встроенная команда перечисляет все IP-адреса (как локальные, так и внешние), связанные с вашим устройством.
источник
WolframAlpha["ip address", {{"IPAddress:InternetData", 1}, "ComputableData"}][[1,2]]
но я не знаю, как получить к этому более прямо.AutoIt,
5653 байта@IPAddress1
это макрос, который возвращает_GetIP()
возвращается-3 байта благодаря @ mınxomaτ
источник
С #
196194188163 байтаСохранено 2 байта благодаря @Xynos.
Сохранено 25 байтов благодаря @Nick.
Полная / Отформатированная версия:
источник
i.AddressFamily
наint
вместо литья2
вAddressFamily
, и вы можете заменитьDns.GetHostName()
на пустой строке.namespace
прием довольно распространен для C #. Если вы думаете, что это не должно быть разрешено, вы можете опубликовать на мета об этом, но на данный момент это честная игра и хитрый трюк в сокращенииusing
s.PowerShell v4 +,
4036 байт(Работает только на Server 2012 R2 или выше, или Windows 8.1 или выше. Не работает на TIO.)
Делает именно то, что говорит на жестяной банке. Получает IP-адреса локальной сети и выбирает только
IPA
их часть адреса (например, отфильтровывает маску подсети, шлюз и т. Д.).Второе - это то,
Invoke-WebRequest
кhttp://eth0.me
чему оно просто приходитC
; т.е. просто публичный IP-адрес.Безголовая версия:
источник
Get-
Unix Shell + stunclient , 40 байт
Использует протокол STUN :
Имя сервера STUN указано в списке серверов Public STUN .
Выходной формат:
Обратите внимание, что обе строки будут иметь один пробел, но я считаю, что это не нарушает правила вывода, как написано.
Образец вывода:
источник
curl (bash one-liner): 27 байт
Результат напечатан на
stdout
и выглядит так:curl
должна быть как минимум версии 7.29.0 (от 6 февраля 2013 г.).Ответ основан на /codegolf//a/139538/66016 .
источник
Go, только MacOS, 10 байт
В macOS можно использовать этот выключатель , который может печатать текущий частный активный IP и публичный IP:
Это не встроенный инструмент, но он пытается упростить процесс поиска нужных IP-адресов.
Вывод может быть получен с помощью таких команд:
Публичный IP:
источник
PowerShell v3 + (альтернативный ответ для Windows 7+)
источник
-match
чтобы сохранить пару байтов.Bash + Awk + Curl, 43 байта
используя только встроенные инструменты для Mac и Linux
источник
Python 3,
124133 байтаисточник
print a,b
? Интересно, что это выдает два IP-адреса в моей системе (Win7), но ни один из них не является моим действительным локальным IP-адресом.b
на самом деле это IP-адрес виртуального адаптера, а не локальное подключение .Node.js (JavaScript)
224223194175173130 байтБезголовая версия:
.get()
вместо.request()
-.end();
удалено).require
иconsole.log
в однобуквенных переменных, передается URL-адрес непосредственноrequire('http').get
, регистрируется вывод непосредственно изdata
события).источник
.get()
вместо.request()
. Тогда вам тоже не нужно.end();
.(a)=>
=>a=>
), IIRC.require
вызовов, поэтому я оставлю это сейчас. В любом случае, спасибо за предложение.Пакетный файл Windows , 116 байт
Первая строка перебирает результаты выполнения
ipconfig
и получает ваш локальный адрес IPv4.Что касается публичной IP-части, мне пришлось немного украсть изумительный ответ Powershell, потому что, насколько я знаю, нет способа получить публичный IP-адрес компьютера, используя только пакетные сценарии.
Мы начинаем со
@
знака, чтобы подавить отображение запроса (C:\...\path>
), затем запускаем команду PowershellInvoke-WebRequest
(с ее псевдонимомiwr
) и извлекаемcontent
часть этого.Я экспериментировал с тем, что не использовал
(...).content
и вместо этого только запускал команду и извлекал фактическую информацию из полного вывода, используя пакет. Но это оказалось намного дольше, чем это решение, поэтому я сохранил его.Протестировано на Windows 10.0.15063.
источник
R
142,140, 137 байтПроверено на win10 и R (3.4.1).
Спасибо за @ Брюс-Форте за короткий URL.
Безголовая версия:
источник
a <- nchar(x)
наa=nchar(x)
Python 2.7.13 128 байт
источник
Bash + Curl, 24 байта
источник
MS-SQL, 59 байт
Возвращает клиентский IP-адрес экземпляра SQL, выполняющего запрос.
источник
VBA, 58 байт
Ой, не обрабатывает локальный адрес - исправление в процессе
Функция анонимного непосредственного окна VBE, которая не вводит и выводит IP-адрес пользователя через окно Internet Explorer
источник