【问题标题】:Python 3: how to get nic from which will be sent packets to certain ip?Python 3:如何获取 nic 将从中将数据包发送到某个 ip?
【发布时间】:2016-03-17 07:58:46
【问题描述】:

我的机器有多个 NIC,可以连接到一个网络、不同的网络或其他所有可能的方式。使用 requests 模块向服务器发送 POST/GET 请求的 Python 脚本在该机器上运行。

那么,接下来的问题是:如何在 python 脚本中知道将从哪个接口发送请求?

【问题讨论】:

  • 真的需要知道这一点,还是只是出于个人好奇?因为操作系统路由会确保正确的数据包在正确的接口上发出。
  • 是的,我知道操作系统会选择正确的,所以我需要获取 NIC,它会被操作系统用于程序中的其他用途。

标签: python python-3.x post network-programming python-requests


【解决方案1】:

这里有两个不同的答案。一种是针对您要指定 NIC 来发送请求的情况,另一种是针对您的要求:找到正确的 NIC。

对于第二个答案,我只能说这取决于。这些 NIC 是否在同一个网络/子网上?他们有结合吗?

如果它们在不同的网络上,那么您可以知道主机 IP 地址并使用计算机的路由表查看数据包将通过哪个 NIC。如果它们绑定在同一网络上,则请求将从绑定接口离开,因为它(通常)是具有 IP 地址的接口。如果他们在同一个网络上并且在同一个子网上有不同的IP,那么这取决于。在这种情况下,您能否提供更多信息?

【讨论】:

  • 更准确地说,我需要知道我将从哪个 IP 发送请求。问题是我不知道网络配置,可以在程序运行时更改。机器可以有任意数量的 NIC,每个 NIC 都有自己的 IP - 绝对是。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-12-09
  • 2023-01-31
  • 2015-07-16
  • 2018-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多