PyZMQ提示Windows在Windows上请求网络访问,即使没有IPC

时间:2017-02-27 18:01:20

标签: python zeromq pyzmq

我在Windows 10上使用PyZMQ进行IPC(通过TCP),作为自动更新程序的一部分。我注意到在某些计算机上,防火墙提示似乎可以选择是否可以使用公共或私人互联网,尽管事实上它没有连接到互联网 - 只有本地主机。

这个PyInstaller打包的脚本由用户域脚本启动。

所以:     脚本启动我的PyInstaller打包脚本 - >     脚本严格使用pyzmq连接到localhost->     Windows提示如何通过防火墙

此提示不会停止该程序,但我不希望用户看到它并想知道它们可能具有哪种病毒。

这是可能触发它的代码:

sckt = self.zmq_context.socket(zmq.REQ)
sckt.connect('tcp://localhost:%s' % updater_shared_port)

我有什么办法可以阻止Windows防火墙弹出窗口吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

是的,有一些东西:

可以通过 tcp:// 传输类以外的其他方式实现连接。

ZeroMQ可以帮助您通过智能传输{ ipc:// | inproc:// | vmci:// }构建您的想法,因为您无需组装/反汇编全高L3-ISO-OSI堆栈以达到交易对手,托管在同一 {{ 1}}

答案 1 :(得分:0)

可以将防火墙配置为允许您的程序不受阻碍地运行。这可能是手工制作的一种新生。可能有一种方法可以让安装程序正确配置防火墙,但这需要大量的工作才能完成。

如果它是导致弹出的绑定结束的可能性(不是你建议的连接端),显然可以将zmq套接字绑定到特定接口。这是通过连接字符串完成的,例如zmq_bind(socket, "tcp://127.0.0.1:5555");这会将套接字钳位到环回,这可能根本不会给防火墙带来麻烦。 zmq_bind(socket, "tcp://*:5555)将在所有接口上打开一个套接字,包括任何面向Internet的接口,这应该引起防火墙的注意。如果你还没有尝试过,可能值得一试。