php获取服务器地址,php服务器

php 获取服务器计算机名和服务器域名

1、做成web服务器需要满足:域名或者公网ip,电脑安装配置web服务,开启80端口允许访问,网站程序。

2、域名或者公网ip,这一点一般家用宽带没有固定的公网ip,常用的动态域名解析花生壳,科迈动态解析,建议申请使用花生壳动态域名解析,并设置到路由器上,这样网站的访问域名是花生壳的子域名。

3、如果有公网固定ip,建议购买一个域名解析到这个ip上,这个公网ip可以在电脑直接设定。web绑定,防火墙允许80端口就可以了。

4、电脑安装配置web服务,这个条件比较好实现,找个服务器操作系统,如win2003系统,安装上iis组件就可以了,默认80就打开了,然后再配置一下程序需要的环境。

5、如果.net程序就安装net framwork相应版本,如果php就配置php+mysql环境。

6、家用宽带默认80端口在路由器不开放的,需要在路由器上做端口映射,将个人电脑ip 80端口通过宽带路由映射出去。

7、网站程序,自己会开发了可以自己做,不会了到网上下载一些开源程序就可以了。

PHP 获取客户端真实IP地址

PHP获取客户端真实IP地址需依据具体部署环境选择相应方法。通常,直接贴代码的文章往往缺乏针对不同情况的详细说明,这可能导致系统被假IP欺骗。不过,只要合理选择获取方式,程序便能避免此类问题。

PHP的运行方式多样,包括php-cgi、php-fpm、swoole、php-cli、php-mod等。php-fpm作为fast-cgi进程管理器,常与Nginx搭配使用,而php-mod通常与Apache协同工作。从PHP5.4起,PHP亦可作为内置Web服务器运行,形成了经典搭配如LAMP、LNMP、LNMPA、IIS+PHP。

获取客户端真实IP地址时,关键在于理解数据传递路径。在无代理层(如PHP内置服务器/swoole)环境下,客户端IP数据直接从TCP/IP协议层传递,故可通过标准方法如REMOTE_ADDR或getenv("REMOTE_ADDR")获取与服务器直接连接的IP地址。在swoole中,通过$request->server['remote_addr']同样能获取客户端IP。

在Nginx代理环境中,如LNMP方案,Nginx与php的通讯依赖于Header配置。通过设置proxy_set_header X-Forwarded-For$remote_addr或proxy_set_header X-Forwarded-For$proxy_add_x_forwarded_for,可以正确获取客户端真实IP。若配置了X-Real-IP$remote_addr,则可通过此头获取IP地址。正确配置这些Header,确保在Nginx代理下获取到实际客户端IP。

Apache代理下,获取IP地址则取决于Apache配置信息。通常情况下,使用$_SERVER["REMOTE_ADDR"]即可获取真实客户端IP。若存在Nginx作为上层代理,可在Apache中使用mod_rpaf模块,将客户端IP地址传递到X-Forwarded-For头中。

负载均衡、云虚拟机、Serverless等环境下,IP获取需查阅对应负载均衡程序文档。通常通过HTTP_CLIENT_IP、HTTP_X_FORWARDED_FOR或X-REAL-IP等标识得知客户端IP。注意,不应对多种来源进行空值判断,以防止被伪造者利用,实现IP欺骗。

在IIS+ PHP配置中,使用$_SERVER['REMOTE_ADDR']即可获取IP地址。总结而言,获取客户端真实IP地址需结合具体环境选择合适方法,避免直接复制粘贴代码。部分方法可能返回数组形式的IP地址,此时应避免使用正则过滤,以防误处理IPv6地址。更多关于PHP获取客户端真实IP地址的详细信息,可访问vb.net教程、C#教程、python教程、SQL教程、access 2010教程等学习资源。

怎样获取服务器跟地路径php

PHP编程中经常需要用到一些服务器的一些资料,特把$_SERVER的详细参数整理下,方便以后使用。

$_SERVER['PHP_SELF']#当前正在执行脚本的文件名,与 document root相关。

$_SERVER['argv']#传递给该脚本的参数。

$_SERVER['argc']#包含传递给程序的命令行参数的个数(如果运行在命令行模式)。

$_SERVER['GATEWAY_INTERFACE']#服务器使用的 CGI规范的版本。例如,“CGI/1.1”。

$_SERVER['SERVER_NAME']#当前运行脚本所在服务器主机的名称。

$_SERVER['SERVER_SOFTWARE']#服务器标识的字串,在响应请求时的头部中给出。

$_SERVER['SERVER_PROTOCOL']#请求页面时通信协议的名称和版本。例如,“HTTP/1.0”。

$_SERVER['REQUEST_METHOD']#访问页面时的请求方法。例如:“GET”、“HEAD”,“POST”,“PUT”。

$_SERVER['QUERY_STRING']#查询(query)的字符串。

$_SERVER['DOCUMENT_ROOT']#当前运行脚本所在的文档根目录。在服务器配置文件中定义。

$_SERVER['HTTP_ACCEPT']#当前请求的 Accept:头部的内容。

$_SERVER['HTTP_ACCEPT_CHARSET']#当前请求的 Accept-Charset:头部的内容。例如:“iso-8859-1,*,utf-8”。

$_SERVER['HTTP_ACCEPT_ENCODING']#当前请求的 Accept-Encoding:头部的内容。例如:“gzip”。

$_SERVER['HTTP_ACCEPT_LANGUAGE']#当前请求的 Accept-Language:头部的内容。例如:“en”。

$_SERVER['HTTP_CONNECTION']#当前请求的 Connection:头部的内容。例如:“Keep-Alive”。

$_SERVER['HTTP_HOST']#当前请求的 Host:头部的内容。

$_SERVER['HTTP_REFERER']#链接到当前页面的前一页面的 URL地址。

$_SERVER['HTTP_USER_AGENT']#当前请求的 User_Agent:头部的内容。

$_SERVER['HTTPS']—如果通过https访问,则被设为一个非空的值(on),否则返回off

$_SERVER['REMOTE_ADDR']#正在浏览当前页面用户的 IP地址。

$_SERVER['REMOTE_HOST']#正在浏览当前页面用户的主机名。

$_SERVER['REMOTE_PORT']#用户连接到服务器时所使用的端口。

$_SERVER['SCRIPT_FILENAME']#当前执行脚本的绝对路径名。

$_SERVER['SERVER_ADMIN']#管理员信息

$_SERVER['SERVER_PORT']#服务器所使用的端口

$_SERVER['SERVER_SIGNATURE']#包含服务器版本和虚拟主机名的字符串。

$_SERVER['PATH_TRANSLATED']#当前脚本所在文件系统(不是文档根目录)的基本路径。

$_SERVER['SCRIPT_NAME']#包含当前脚本的路径。这在页面需要指向自己时非常有用。

$_SERVER['REQUEST_URI']#访问此页面所需的 URI。例如,“/index.html”。

$_SERVER['PHP_AUTH_USER']#当 PHP运行在 Apache模块方式下,并且正在使用 HTTP认证功能,这个变量便是用户输入的用户名。

$_SERVER['PHP_AUTH_PW']#当 PHP运行在 Apache模块方式下,并且正在使用 HTTP认证功能,这个变量便是用户输入的密码。

阅读剩余
THE END