5

Предположим, у меня есть несколько сетевых карт, подключенных к моему ПК, как я могу узнать, какая карта используется для связи. Например, если я использую

ping 192.168.x.xxx

Я хотел бы знать, какая карта (и какой IP-адрес) используется для связи.

Команда

netstat

расскажет нам об активных подключениях. Я не заинтересован в активных подключениях, но я хотел бы знать, какая карта будет использоваться для следующего подключения. То есть, если мы используем ping какая карта (или IP-адрес) будет использоваться?

3 ответа3

3

Попробуйте route print ; он покажет вам таблицу сетей ОС и какой сетевой интерфейс он будет использовать для каждой из них, или где в одной сети будет несколько карт, вес которых он будет использовать при распределении трафика. У меня есть только одна карта в этой машине, так что это не очень интересно:

===========================================================================
Interface List
0x1 ........................... MS TCP Loopback interface
0x2 ...00 12 34 56 78 9a ...... Intel(R) 82566DM Gigabit Network Connection
===========================================================================
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0      123.45.67.1   123.45.67.137       10
        127.0.0.0        255.0.0.0        127.0.0.1       127.0.0.1       1
      234.254.0.0      255.255.0.0    123.45.67.137   123.45.67.137       20
      123.45.67.0    255.255.255.0    123.45.67.137   123.45.67.137       10
    123.45.67.137  255.255.255.255        127.0.0.1       127.0.0.1       10
   123.45.255.255  255.255.255.255    123.45.67.137   123.45.67.137       10
        224.0.0.0        240.0.0.0    123.45.67.137   123.45.67.137       10
  255.255.255.255  255.255.255.255    123.45.67.137   123.45.67.137       1
    Default Gateway:       123.45.67.1
===========================================================================
Persistent Routes:
  None

так, например, от трафика второй линии до 127.xxx будет использоваться интерфейс обратной связи, но трафик для многоадресной рассылки и все остальное будет использовать сетевую карту. Я не уверен, как читать это программно, хотя, извините.

3

Netstat скажет вам - локальный адрес, указанный в netstat, будет IP-адресом сетевой карты, которую вы используете

Давайте возьмем фрагмент моего собственного вывода netstat на окнах - я подключен к локальной сети через 192.168.1.127 и кроссовер локальной сети через 10.0.0.2

 Proto  Local Address          Foreign Address        State
  TCP    10.0.0.2:56702         ARTEMIS:ms-wbt-server  ESTABLISHED
  TCP    127.0.0.1:19872        Athena:49172           ESTABLISHED
  TCP    192.168.1.127:2869     192.168.1.254:49565    TIME_WAIT
  TCP    192.168.1.127:56523    stackoverflow:http     ESTABLISHED

10.0.0.2 - это адаптер на локальном кроссовере, подключенный к ARTEMIS, на котором работает сервер RDP, 192.168.1.127 разговаривает с моим маршрутизатором, который является 192.168.1.254, и stackoverflow. Также обратите внимание, что представлены локальные соединения на 127.0.0.1.

на Linux вам может понадобиться

netstat -n

у меня только один порт активен в моей коробке Linux, но это будет выглядеть примерно так - для IP-адрес 192.168.1.127

   tcp        0     52 192.168.1.127:22        121.7.51.154:56383      ESTABLISHED
2

Используемая карта определяется IP-адресом, настроенным на этой карте. Стоит отметить, что в общем случае недопустимо настраивать IP-адреса в одной подсети для разных физических интерфейсов. (Да, есть исключения из этого, но они, как правило, очень специфичны и вряд ли будут полезны для вас на этом уровне).

Какая физическая карта связана с каким логическим именем в вашей операционной системе, является более сложной проблемой. Самый простой способ определить это - отключить все сетевые кабели, кроме одного, и посмотреть, по какому IP-адресу вы все еще можете общаться.

Какую операционную систему вы используете, для определенных типов ОС иногда есть более простые способы определить, какая карта была отключена - например, Windows предоставляет визуальную обратную связь с помощью значков на панели задач.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .