Python中的虚拟网络接口 背景:

Python中的虚拟网络接口 背景:,python,networking,Python,Networking,我必须安装一些爱普生收据打印机。通过将web浏览器指向并提交表单来配置打印机。我编写了一个Python脚本,可以模拟表单POST,现在可以配置打印机,而无需使用web界面一个缺点是我的计算机必须在192.168.192.0/24网络上。 问题: 是否可以用Python创建一个虚拟网络接口,我的脚本无需手动更改计算机网络设置即可使用该接口?您遇到了Python无法解决的问题 听起来您的网络由于某种原因被划分成了行政区域。如果两个管理域都连接了防火墙或bastion主机,则您可能可以利用将此服务器保

我必须安装一些爱普生收据打印机。通过将web浏览器指向并提交表单来配置打印机。我编写了一个Python脚本,可以模拟表单POST,现在可以配置打印机,而无需使用web界面一个缺点是我的计算机必须在192.168.192.0/24网络上。

问题:
是否可以用Python创建一个虚拟网络接口,我的脚本无需手动更改计算机网络设置即可使用该接口?

您遇到了Python无法解决的问题

听起来您的网络由于某种原因被划分成了行政区域。如果两个管理域都连接了防火墙或bastion主机,则您可能可以利用将此服务器保持在一个网络上并轮询另一个网络

如果192.168.192.0不是出于管理/安全原因故意分割的;这可能是局域网管理员的一个简单疏忽。在这种情况下,他们可以将192.168.192.0添加到公司路由表中

最后一个选项是管理域之间的某种VPN连接。。。再次与您的网络管理员讨论

编辑 由于您需要linux以太网别名,最简单的方法是在linux中使用
iproute2
。。。使用ip地址添加192.168.192.1/24 dev eth0作为根

[mpenning@Finger ~]$ sudo ip addr add 192.168.192.1/24 dev eth0
[mpenning@Finger ~]$ ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether 78:2b:cb:0a:8c:f9 brd ff:ff:ff:ff:ff:ff
    inet 192.168.12.238/24 brd 192.168.12.255 scope global eth0
    inet 192.168.192.1/24 scope global eth0
    inet6 fe80::7a2b:cbff:fe0a:8cf9/64 scope link 
       valid_lft forever preferred_lft forever
[mpenning@Finger ~]$ ip route show
192.168.192.0/24 dev eth0  proto kernel  scope link  src 192.168.192.1 
192.168.12.0/24 dev eth0  proto kernel  scope link  src 192.168.12.238 
default via 192.168.12.236 dev eth0 
[mpenning@Finger ~]$
[mpenning@Finger~]$sudo ip addr addr 192.168.192.1/24 dev eth0
[mpenning@Finger~]$ip地址显示
1:lo:mtu 16436 qdisc noqueue状态未知
链接/环回00:00:00:00:00 brd 00:00:00:00:00:00:00
inet 127.0.0.1/8范围主机lo
inet6::1/128作用域主机
永远有效\u lft首选\u lft永远有效
2:eth0:mtu 1500 qdisc mq状态更新qlen 1000
链路/以太网78:2b:cb:0a:8c:f9 brd ff:ff:ff:ff:ff:ff:ff
inet 192.168.12.238/24 brd 192.168.12.255作用域全局eth0
inet 192.168.192.1/24范围全局eth0
inet6 fe80::7a2b:cbff:fe0a:8cf9/64范围链接
永远有效\u lft首选\u lft永远有效
[mpenning@Finger~]$ip路由显示
192.168.192.0/24 dev eth0原型内核作用域链接src 192.168.192.1
192.168.12.0/24 dev eth0原型内核作用域链接src 192.168.12.238
默认通过192.168.12.236 dev eth0
[mpenning@Finger ~]$

现在将打印机插入以太网交换机。。。您应该能够ping 192.168.192.168。。。要删除:
ip addr del 192.168.192.1/24 dev eth0
(以root用户身份)

请指定哪个操作系统。@aix、Linux(确切地说是CentOS 4.8)Python只使用内核的网络堆栈。如果不能ping它,Python就什么都做不了。您需要首先在操作系统/系统级别正确设置IP地址、路由以及可能的隧道。192.168.192.168是爱普生打印机的默认IP地址。这些说明告诉您将IP更改为此网络,以便进行首次配置。很抱歉不清楚。@邪恶精灵,您可以使用linux接口别名来解决此问题。我得去参加一个会议,但如果你用谷歌搜索的话,我做完的时候可能已经解决了。。。如果没有,我将发布一个hyperlink@Evil精灵,我更新了。。。如果您还有其他问题,请告诉我。欢呼这很好,但是OP想要一种不需要手动更改网络设置的方法,这就是。当然,如果脚本以root用户身份运行,则可以编写这些步骤的脚本。