如何设置源IP以在Python中发送流量



我有一个向服务器发送流量的脚本。它将传入流量标记为特定IP的已知位置流量。

我的脚本通过Pycurl发送流量。我现在无法更改Pycurl,所以有没有任何方法可以通过发送特定的源IP来发送流量。

选项是在pycurl中设置源IP,或者使其使用使用该特定IP创建的某个接口。我需要知道如何制作一个虚拟接口来为python中的特定IP提供流量,以便pycurl拾取要发送的接口。

如果您有多个具有多个IP地址的接口,或者如果您只想让内核处理这个问题,您只需要在内核中添加一个主机路由。在linux上,这看起来像:

ip route add 10.45.0.20/32 src 10.45.0.10

其中10.45.0.10是您想要作为源的IP,10.45.020是Web服务器。注意:如果你有一个通往服务器的网关,那么你需要有一个"via"语句,并且所需的源ip需要能够向它发送流量(相同的子网(。

如果你有多个接口,而你想要使用的ip是唯一一个绑定到其中一个接口的ip,那么你可以将以下内容添加到你的Pycurl程序中:

c = pycurl.Curl()
...
c.setopt(pycurl.INTERFACE, "eth2")

其中eth2是请求将来自的接口的名称。如果您想要作为源的IP是唯一绑定到eth2的IP,那么请求将具有该源IP。

相关内容

  • 没有找到相关文章

最新更新