Что такое команда терминала или как найти имя сетевого интерфейса (например, en0, en1, en3 en8 и т. д.) С IP-адреса. У меня есть IP-адрес, и мне нужно выяснить, какой IP-адрес назначен сетевому интерфейсу в macOS.
Да ... ifconfig покажет это, но также покажет другие вещи. Но мне просто нужно имя интерфейса en1, en2, например. Xxxxx 10.20.30.40 результаты должны быть en1 или en2

Я сейчас не перед компьютером, а что-то вроде
ifconfig | grep -b1 "youriphere" | awk 'NR==1{print $1}'
Должен получить вас в примерном.
Нет, это не так .. iost показывает результат - inet6, и если я удалю awk, он покажет - inet6 xxx :: xx: xxxxx: xxxxxxx prefixlen 64 защищенный идентификатор области 0xe inet 20.30.40.540 сетевая маска 0xfffffe00 широковещательная передача 100.100.100.100 Это не дает всю строку
Правильный способ сделать это:
route -n get "yourIPhere" | awk '/interface: / {print $2}'
Другие ответы в основном игнорируют один вопрос. Подобный IP-адрес может быть сопоставлен, например, если сетевой интерфейс 172.16.1.100, IP-адрес 72.16.1.10 также будет сопоставлен. Вот мое решение :
ifconfig | grep -PB1 "[: ]72.16.1.10[^\d]" | grep -o "^\w*"
or
ifconfig | grep -PB1 "[: ]72.16.1.10[^\d]" | awk -F'[: ]' 'NR==1{print $1}'
в macOS, но вы отметили Ubuntu и Linux. Что он? Я предполагаю, что
ifconfigможет дать вам какие-то результаты?