我在具有专用 IP 的虚拟主机上使用 opencart。bank 只允许从专用 ip 进行虚拟 pos 查询,但 php 使用服务器 ip 与银行的 api 通信。有什么方法可以强制 php 使用该专用 ip?
ps:有一个代码内解决方案,但我更喜欢更通用的解决方案,如 php.ini 编辑。
正确的方法是将bind()
您的连接套接字连接到您希望使用的接口的 IP 地址。这将保证您想要的行为。(您可以将端口号设置为零以让操作系统选择一个。)
您还可以让操作系统适当地选择接口。事实上,我很惊讶它不是。您没有列出任何特定的 IP 地址、接口配置或路由表,但如果我们假设您的私有 IP 是 172.16.0.222 并且银行的 IP 地址是 172.16.0.11,那么打开到 172.16.0.11 的连接套接字应该使用您的本地私有 IP 地址。如果它正在选择您的公共地址,那么操作系统会认为它具有从该地址到目的地的路由。确保不是这种情况,您的问题应该得到解决。