Периодически мне нужно узнать внешний адрес через который мой компьютер выходит в Интернет. Самое простое решение является и самым неправильным - “ifconfig” показывает адрес с интерфейса, а я очень редко напрямую включаюсь в Интернет, только через NAT.
Обычно я запускал отличную команду в терминале
$ curl ifconfig.me
Но тут решил, что можно ещё упростить процесс. Чем меньше нужно делать для выполнения часто используемой функции, тем лучше.
“Удобно и быстро” = нажав пару клавиш. Как? В лончере LaunchBar (в Alfred или QuickSilver должно быть аналогично). Или TextExpander.
LaunchBar
Создал AppleScript Show External IP Address.scpt в каталоге ~/Library/Application Support/LaunchBar/Actions
set _info to system info
set _name to computer name of _info
tell application "LaunchBar"
# set externalip to do shell script "curl http://ifconfig.me"
set externalip to do shell script "curl --user-agent 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0' http://automation.whatismyip.com/n09230945.asp"
display in large type externalip with title _name
end tell
Почему-то ifconfig.me сегодня доступен через раз, поэтому я даю запрос на whatismyip.com.
Дальше открываю Launchbar, нажимаю ⌘⌥I для входа в окно настройки индесков. Проверяю, чтобы в секции Actions был включен “Show External IP Address” (если его нет, то проверить в настройках, включен ли Search Scope ~/Library/Application Support/LaunchBar/Actions).
Всё. Теперь для получения внешнего адреса я нажимаю ^Space, набираю часть фразы “Show External IP Address” и жму Enter. И на экране появляется нужная информация. Если нужно скопировать адрес, то жму ⌘C и он в клипборде.
TextExpander
Сделал сниппет с Content AppleScript:
set externalip to do shell script "curl --user-agent 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0' http://automation.whatismyip.com/n09230945.asp"
# set externalip to do shell script "curl http://ifconfig.me"
return externalip
Сниппет - скриншот и XML.
Назначил ему аббревиатуру “;extIP”. Всё. Понадобился адрес - получил его.
Что и требовалось.