我在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防火墙弹出窗口吗?
谢谢!
答案 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的接口,这应该引起防火墙的注意。如果你还没有尝试过,可能值得一试。