zoukankan      html  css  js  c++  java
  • php -- php获取ip地址和主机名

    客户端IP相关的变量
    1. $_SERVER['REMOTE_ADDR']; 客户端IP,有可能是用户的IP,也有可能是代理的IP。

    2. $_SERVER['HTTP_CLIENT_IP']; 代理端的IP,可能存在,可伪造。

    3. $_SERVER['HTTP_X_FORWARDED_FOR']; 用户是在哪个IP使用的代理,可能存在,可以伪造。

    服务器端IP相关的变量
    1. $_SERVER["SERVER_NAME"],需要使用函数gethostbyname()获得。这个变量无论在服务器端还是客户端均能正确显示。

    2. $_SERVER["SERVER_ADDR"],在服务器端测试:127.0.0.1(这个与httpd.conf中BindAddress的设置值相关)。在客户端测试结果正确。

    函数

    1、gethostbyaddr(ipaddress);//通过IP地址来获得主机的名称

    2、gethostbyname(StrHostName);//通过主机名称获得IP地址

    3、getenv:取得环境变量内容

      相关函数 getenv,setenv,unsetenv
      表头文件 #include<stdlib.h>
      定义函数 getenv(const char *name);
      函数说明 getenv()用来取得参数name环境变量的内容。参数name为环境变量的名称,如果该变量存在则会返回指向该内容的指针。环境变量的格式为name=value。
      返回值:执行成功则返回指向该内容的指针,找不到符合的环境变量名称则返回NULL。

    4、putenv:改变或增加环境变量

      相关函数 getenv,setenv,unsetenv
      表头文件 #include<stdlib.h>
      定义函数 int putenv(const char * string);
      函数说明:putenv()用来改变或增加环境变量的内容。参数string的格式为name=value,如果该环境变量原先存在,则变量内容会依参数string改变,否则此参数内容会成为新的环境变量。
      返回值:执行成功则返回0,有错误发生则返回-1。
      错误代码:ENOMEM 内存不足,无法配置新的环境变量空间。

    5、setenv:改变或增加环境变量
      相关函数 getenv,putenv,unsetenv
      表头文件 #include<stdlib.h>
      定义函数 int setenv(const char *name,const char * value,int overwrite);
      函数说明 setenv()用来改变或增加环境变量的内容。

      参数 name为环境变量名称字符串。
      参数 value则为变量内容。

      参数 overwrite用来决定是否要改变已存在的环境变量。如果overwrite不为0,则改变环境变量原有内容,原有内容会被改为参数value所指的变量内容。如果overwrite为0,且该环境变量已有内容,则参数value会被忽略。

      返回值 执行成功则返回0,有错误发生时返回-1。
      错误代码 ENOMEM 内存不足,无法配置新的环境变量空间

    当前脚本服务器的主机名:gethostbyaddr($_SERVER['REMOTE_ADDR'])

    获得当前运行PHP脚本(页面)所在的服务器的 IP 地址:$_SERVER['SERVER_ADDR']

    获得当前运行PHP脚本(页面)所在的服务器的 主机名:$_SERVER['SERVER_NAME']

    客户端ip: $_SERVER['REMOTE_ADDR']

    客户端ip:getenv('REMOTE_ADDR')

    服务器主机ip:gethostbyname("www.qq.com")

  • 相关阅读:
    PAT 1006 Sign In and Sign Out
    PAT 1004. Counting Leaves
    JavaEE开发环境安装
    NoSql数据库探讨
    maven的配置
    VMWARE 下使用 32位 Ubuntu Linux ,不能给它分配超过3.5G 内存?
    XCODE 4.3 WITH NO GCC?
    在苹果虚拟机上跑 ROR —— Ruby on Rails On Vmware OSX 10.7.3
    推荐一首让人疯狂的好歌《Pumped Up Kicks》。好吧,顺便测下博客园可以写点无关技术的帖子吗?
    RUBY元编程学习之”编写你的第一种领域专属语言“
  • 原文地址:https://www.cnblogs.com/hf8051/p/4545710.html
Copyright © 2011-2022 走看看