【发布时间】:2019-12-18 09:13:26
【问题描述】:
我有以下 php 脚本试图获取当前服务器 ip 在这种情况下是我机器的当前 ip 地址,但 gethostbyname(gethostname()) 返回不同的地址,即 http://192.168.56.1/ 但我从 ipconfig 获取的当前地址是 http://192.168.1.111/ .
$server_ip = gethostbyname(gethostname());
$upload_url = 'http://'.$server_ip.':81/';
echo $upload_url;
如果我尝试使用该函数使用浏览器返回的 ip 获取资源,它可以工作,但是当尝试从移动客户端获取相同的资源时出现问题(它不起作用)但是如果我更改了ip 到我的机器在网络上使用的那个它可以获取资源。 因此,当应用程序将图像发布到服务器时,有一个 php 脚本和一个移动客户端我想保存移动客户端可以引用的 url,以使用例如 Glide lib 加载图像 因此尝试使用上述 php 函数获取主机名 ip,想了解为什么它返回的 ip 与主机在网络上分配给的 ip 不同。 任何帮助将不胜感激。
【问题讨论】:
-
为什么/如何运行 php 的机器的 ip 未知(它肯定不是可变的)?你实际上想要做什么,提到了一个移动客户端,所以听起来你正在尝试测试一些东西。
-
是的,它的 php 脚本接收从移动应用上传的图像,然后将图像保存到服务器上的文件夹中,然后将 url 插入数据库。所以这个方法 $server_ip = gethostbyname(gethostname ());返回类似 192.168.56.1:81/byro/asa/api/profilepics/… 的东西,但 192.168.56.1 不是我的机器在网络上的 ip,如果它变得更清晰,实际将是 192.168.1.111:81/byro/asa/api/profilepics/… 不知道
-
所以 PHP 脚本正在您描述为“我的机器”的机器上运行,对吗?你实际上并没有明确地说明这一点。请确认您的意思。注:一台设备可能有多个 IP 地址(例如,如果它同时具有以太网和无线连接)。
-
仅存储
/byro/...可能会解决您的问题(即根本不存储主机名) - 请编辑问题以明确与什么对话等。(它应该没有必要阅读任何 cmets 以便读者理解问题/问题)。 -
哦,是的,绝对“我的机器”是指使用 XAMPP 运行脚本的位置。感谢您提供有关多个地址可能性的建议
标签: php