php 监听端口数据客户端ip_PHP获取客户端和服务器端IP[通俗易懂]

客户端的ip变量:$_SERVER[‘REMOTE_ADDR’]:客户端IP,也有可能是代理IP$_SERVER[‘HTTP_CLIENT_IP’]:代理端的IP,可能存在,也可能伪造$_SERVER[‘HTTP_X_FORWARD_FOR’]:用户在哪个ip上使用的id,可能存在,也可能伪造服务端的ip变量:$_SERVER[‘SERVER_NAME’]:需要使用函数gethostname…

大家好,又见面了,我是你们的朋友全栈君。

客户端的ip变量:

$_SERVER[‘REMOTE_ADDR’] :客户端IP,也有可能是代理IP

$_SERVER[‘HTTP_CLIENT_IP’]:代理端的IP,可能存在,也可能伪造

$_SERVER[‘HTTP_X_FORWARD_FOR’] :用户在哪个ip上使用的id,可能存在,也可能伪造

服务端的ip变量:

$_SERVER[‘SERVER_NAME’] :需要使用函数gethostname()来获得,这个无论是服务器端还是客户端都能正常显示。

$_SERVER[‘SERVER_ADDR’]:服务器端的ip地址,在服务器端测试ip地址,在客户端测试正常

getnev 获得系统的环境变量:

例子:

class getIp(){

function ClientIp(){

$cIP= getenv($_SERVER[‘REMOTE_ADDR’]);

$cIP1 = getenv($_SERVER[‘HTTP_X_FORWORD_FOR’]);

$cIP2 = getenv($_SERVER[‘HTTP_CLIENT_IP’]);

$cIP1?$cIP= $cIP1?null;

$cIP2?$cIP = $cIP2?null;

return $cIP;

}

function serverIP(){

return gethostbyname($_SERVER[‘SERVER_NAME’]);

}

}

$getIP = new getIP();

$clientIp = getIP::clientIP();

$serverIp = getIP::serverIP();

?>

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/126970.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java内存管理-一文掌握虚拟机创建对象的秘密(九)

    勿在流沙筑高台,出来混迟早要还的。做一个积极的人编码、改bug、提升自己我有一个乐园,面向编程,春暖花开!回顾一下:本文是接着上一篇内容:Java内存管理-愚人节new一个对象送给你(八),继续整理!主要内容讲解HotSpot虚拟机在Java堆中对象是如何创建、内存分配布局和访问方式。本文地图:一、给你创建一个对象如果你是一直从第一季看过来的,那一定知道前面有个地方讲过类的整…

    2022年2月28日
    33
  • 博客园整改之思考_整改思路

    博客园整改之思考_整改思路在博客园写博客写了三年半的时间了,当初为什么会选择在博客园写,我也记不清是什么原因了,或许这大概是缘分吧。今年3月份后半段的时候,博客园突然访问不了了,如今通过搜索资料,仍然发现有部分文章访问不了,

    2022年8月4日
    5
  • Spring @Value注解使用${}进行注入(转)

    Spring @Value注解使用${}进行注入(转)

    2021年7月2日
    127
  • Pycharm使用教程 , 详细,实用[通俗易懂]

    Pycharm使用教程 , 详细,实用[通俗易懂]1、汉化:把resources_zh.jar(自行下载)拷贝到PyCharm的安装目录下的lib目录,重启Pycharm即可。2、整体结构:3、常用功能介绍:(1)如何更换Python解释器:在文件->设置->项目:xxx下找到ProjectInterpreter。然后修改为你需要的Python解释器。注意这个地方一定要注意的是:在选择Python解释器的…

    2022年8月26日
    8
  • SQL like对时间查询的处理方法

    SQL like对时间查询的处理方法1.SQLlike对时间查询的处理方法SQL数据表中有savetime(smalldatetime类型)字段,表中有两条记录,savetime值为:2005-3-812:12:00和2005-6-614:02:02我用下面语句什么也搜不出来select

    2022年7月15日
    103
  • setContentView的时候,到底发生了什么

    setContentView的时候,到底发生了什么关于setContentView方法,想必大家对这个方法既熟悉又陌生,熟悉的原因是因为基本上我们每创建一个activity,都会调用这个方法,比如:“`@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}“`而且这种写法已经是创建activity的模版了

    2022年6月26日
    24

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号