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")

  • 相关阅读:
    [IOS] iphone开发之UITableView之UITableViewCell [待续中。。。]
    人生需有三心境,你有吗?
    iPad iPhone程序增加启动画面
    [转载]IOS学习之UIApplication深入学习
    [IOS] iphone开发之[美化按钮]
    程序中调用Safari
    ios编程:iPhone Howto:给UIView拍照
    IOSAPNS 消息推送实践
    ios 设备方向判断
    [IOS]iphone开发之横屏与竖屏在不同视图之间的切换
  • 原文地址:https://www.cnblogs.com/hf8051/p/4545710.html
Copyright © 2011-2022 走看看