2016-05-13 4 views
0

Мне интересно, как я могу запросить IP-адрес с помощью sed, и он покажет имя интерфейса, которое его использует.Найти сетевой интерфейс по IP-адресу - Linux/Bash

Например ..

ipconfig -a | grep 10.0.0.10 

Я бы ожидать, что она вернется с ETH0

+0

Обратите внимание на '' ipconfig' не может быть установлен, вместо этого используется 'ip' команды (' внутрибрюшинно addr' конкретно) systemd' иницилизации ОС –

+0

Для начала это 'ifconfig',' ipconfig' - это команда DOS (я предполагаю, что это была опечатка). Итак, каков результат 'ifconfig -a' сам по себе? Есть ли сетевой адаптер в вашей системе с IP-адресом «10.0.0.10»? – theruss

ответ

0

Вы должны использовать этот COMAND:

ifconfig | grep -B1 "inet addr:10.0.0.10" | awk '$1!="inet" && $1!="--" {print $1}' 

Надежда эта помощь!

+0

Я не уверен, как это поможет, если OP не сможет найти то, что было после использования старого старого grep 10.0.0.10, а затем добавить к строке, чтобы найти ее еще не найдет. – theruss

+0

вы можете объяснить больше? что такое '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ', ' –

+0

OP = оригинальный плакат, и btw Thanh, это ТОЧНО, что я искал, спасибо :) – TonyW

0

Если вы хотите использовать специальное решение sed, вы можете попробовать это. Его трудно усвоить, как это работает, но, наконец, эта комбинация работает.

ifconfig | sed -n '/addr:10.0.0.10/{g;H;p};H;x' | awk '{print $1}' 

Если вы хотите, чтобы принять его в качестве аргумента с помощью использования сценария «$ 1» или так вместо этого, если 10.0.0.10.

Sed руководство для справки: http://www.gnu.org/software/sed/manual/sed.html#tail

Смежные вопросы