Я знаю, что довольно сильно заржавел, когда дело доходит до bash кодирования, особенно от более сложной, необходимой хитрости при обработке частей awk или sed.
У меня есть скрипт, который регистрирует IP-адрес, используемый в настоящее время для the interwebs.
Он получает это, используя wget -q0 URL или lynx -dump URL.
Самым простым был сайт, который возвращал IP-адрес только в виде обычного текста и ничего больше , К сожалению, этот сайт больше не существует.
Код был прост, как может быть: IP=$(wget -qO - http://cfaj.freeshell.org/ipaddr.cgi)
Но, увы! использование кода ничего не возвращает, потому что сайт пропал, как Lynx может сказать нам:
$ lynx -dump http://cfaj.freeshell.org/ipaddr.cgi
Looking up cfaj.freeshell.org
Unable to locate remote host cfaj.freeshell.org.
Alert!: Unable to connect to remote host.
lynx: Can't access startfile http://cfaj.freeshell.org/ipaddr.cgi
Некоторые другие сайты, которые я использовал для поиска с той же целью, больше не работают.
один, который я хочу использовать, это говорящий по-немецки, не то, чтобы я заботился так или иначе, это могло бы быть на греческом или мандаринском языке для меня все равно. Я хочу только извлечь сам IP-адрес, но, как я уже сказал, мои навыки кодирования устарели.
Вот соответствующая область того, что lynx -dump возвращает
[33]powered by
Ihre IP-Adresse lautet:
178.24.x.x
Ihre IPv6-Adresse lautet:
Ihre System-Informationen:
при запуске это выглядит следующим образом:
lynx -dump https://www.wieistmeineip.de/
Теперь мне нужен либо awk, либо sed, чтобы найти 178.24.xx часть. (Я знаю, что это также можно сделать с помощью python или Perl, но оба они не являются частью стандартной настройки моего Linux, в то время как awk и sed - это.)
Поскольку скрипт чтобы извлечь IP-адрес, необходимо выполнить следующие действия с помощью sed или awk:
- Искать «Ihre IP-Adresse lautet:»
- Пропустить следующую строку.
- Пропустить пробел в начале
- Вернуть только то, что осталось от этой строки (без lf в конце).
В приведенном выше примере (который показывает только соответствующая часть дампа Lynx, весь дамп намного больше, но все выше и ниже не имеет значения.) это будет "178.24.xx", который должен быть возвращен.
Любая помощь, очень ценная, чтобы получить мой Сценарий log-ip возвращается в рабочее состояние.
В настоящее время я собрал некоторые другие рабочие URL-адреса, которые сообщают свой собственный inte rnet IP. Любой из них также может быть использован, но область вокруг указанного IP будет отличаться от приведенного выше примера. Это:
https://meineipinfo.de/
http://www.wie-ist-meine-ip.net/
https://www.dein-ip-check.de/
https://whatismyipaddress.com/
https://www.whatismyip.org/
https://www.whatismyip.net/
https://mxtoolbox.com/whatismyip/
https://www.whatismyip.org/my-ip-address
https://meineipadresse.de/
Даже DuckDuck go возвращает IP-адрес, когда, например, спросили это: https://duckduckgo.com/?q=ip+address&ia=answer
По крайней мере, я не знаю, как получить собственный IP-адрес при использовании inte rnet без извлечения внешнего URL-адреса, который сообщает мне этот IP-адрес.