Home  >  Article  >  Backend Development  >  php 有没有一种办法,通过外网映射访问获取到内网的ip

php 有没有一种办法,通过外网映射访问获取到内网的ip

WBOY
WBOYOriginal
2016-06-23 13:50:341243browse

情况是这样的,服务器内网地址是:192.168.28.154,php代码跟mysql数据库都在这上。

然后php需要链接到数据库,于是php代码中是这么写的:
$dbhost="192.168.28.154";
...
mysql_connect("localhost",
...

现在,可能会把php代码跟mysql数据库部署到其他服务器上,但是希望php代码到时候可以不修改,那么,php中怎么获取到当前部署代码的服务器ip地址?

注:这里设了一个外网映射:58.240.33.174:20280,他人可以通过这个ip访问。


回复讨论(解决方案)

要是你想部署的是内网的服务器,那可以不需要改,但是要是跟你的数据库不是一个局域网内或者是服务器上访问不了内网,那你是必须要把数据库迁移到外网去的,要不然你程序就要更改数据库链接才可以。

要是你想部署的是内网的服务器,那可以不需要改,但是要是跟你的数据库不是一个局域网内或者是服务器上访问不了内网,那你是必须要把数据库迁移到外网去的,要不然你程序就要更改数据库链接才可以。



--------------------------------------------------------------------------------------------------------------------------------------------

您好,假设我部署的是内网服务器,比方说变成了192.168.28.151,而不是原来的192.168.28.154了,那目前代码需要改么?
$dbhost="192.168.28.154";这个是啥意思啊?

php 和 mysql 都在同一台机器上
那么连接 mysql 时用 locathost 而非 IP

php 和 mysql 都在同一台机器上
那么连接 mysql 时用 locathost 而非 IP



------------------------------------------------------------------------------------

$conn = mysql_connect("localhost",
这个我知道是连接数据库的,
那请问,以下这段代码有什么用?
为什么$dbhost后面直接赋值当前的服务器地址?
  $dbhost="192.168.28.154";
  $dbuser="authpuppy";
  $dbpassword="authpuppydev";
  $dbname="authpuppy";
  $tbname="t_node_ad";

那是项目的初始配置,你不用就一点用的没有

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn