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

时间: 2024-08-01 03:21:50

php -- php获取ip地址和主机名的相关文章

在cmd中获取ip地址和主机名

将下面的文件放到一个bat文件当中,以管理员身份运行. @echo off &setlocal enabledelayedexpansion Rem '/*========获取本机的IP地址(局域网)=========*/ echo "please wait" for /f "tokens=2 delims=:" %%b in ('ipconfig^|find /i "ip"') do set fsip=%%b echo %fsip% s

Java如何获取本地计算机的IP地址和主机名?

在Java编程中,如何获取本地计算机的IP地址和主机名? 以下示例显示如何使用InetAddress类的getLocalAddress()方法获取系统的本地IP地址和主机名. package com.yiibai; import java.net.InetAddress; public class GetLocalIPAddress { public static void main(String[] args) throws Exception { InetAddress addr = Ine

Centos 7 安装 设置 IP地址,DNS,主机名,防火墙,端口 (实测+笔记)

环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) 系统版本:CentOS-7.0-1406-x86_64-DVD.iso 安装步骤: 1.虚拟系统安装 1.1 使用VMware 虚拟机,读入ISO进行安装.启动后进行安装界面 1.2 选择 Install CentOS7,进行语言选择 1.3 选择简体中文,进入信息摘要 1.4 点击"安装位置",选择系统需要安装到的硬盘,点击“完成”. 1.5 点击"网络和主机名",进行网络设置

Java如何从IP地址查找主机名?

在Java编程中,如何从IP地址查询出主机名? 以下示例显示了如何通过net.InetAddress类的InetAddress.getByName()方法将指定的IP地址查到主机名称. package com.yiibai; import java.net.InetAddress; public class HostSpecificByIP { public static void main(String[] argv) throws Exception { InetAddress addr =

logresolve - 解析Apache日志中的IP地址为主机名

logresolve是一个解析Apache访问日志中IP地址的后处理程序. 为了使对名称服务器的影响降到最低,logresolve拥有极为自主的内部散列表缓存, 使每个IP值仅仅在第一次从日志文件中读出时才被解析一次. 此程序从标准输入设备上获得需要解析的Apache日志文件, 其中,IP地址必须在每行的开始处,行中其余信息必须以空格分隔. 概要 logresolve [ -s filename ] [ -c ] < access_log > access_log.new 选项 -s file

通过主机名(域名)获取IP地址,主机别名等信息

一.所用API函数介绍 struct hostent FAR*gethostbyname( const char FAR* name ); 传入參数:const char FAR* name.主机名或者域名 返回值:一个指向struct hostent的指针 结构体hostent定义例如以下: struct hostent { char FAR *       h_name; char FAR * FAR * h_aliases; short            h_addrtype; sho

Redhat6 网卡设置 IP地址及主机名配置

1:临时修改:1.1:修改IP地址#ifconfig eth0 192.168.1.10  network 192.168.1.0 1.2:修改网关地址# route add default gw 192.168.1.1 dev eth0 1.3:修改DNS# echo "nameserver 8.8.8.8" >> /etc/resolv.conf 注:一旦重启网卡或者重启服务器,除了DNS的操作其他均会被还原 2:永久性修改:2.1:修改IP地址修改/etc/sysco

Centos 7 安装 设置 IP地址,DNS,主机名,防火墙,端口,SELinux (实测+笔记)

环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) 系统版本:CentOS-7.0-1406-x86_64-DVD.iso 安装步骤: 1.虚拟系统安装 1.1 使用VMware 虚拟机,读入ISO进行安装.启动后进行安装界面 1.2 选择 Install CentOS7,进行语言选择 1.3 选择简体中文,进入信息摘要 1.4 点击"安装位置",选择系统需要安装到的硬盘,点击“完成”. 1.5 点击"网络和主机名",进行网络设置

烂泥:使KVM显示VM的IP地址及主机名

本文首发于烂泥行天下. KVM虚拟化学习已经有一段时间了,现在虚拟化软件比较多,对比了下目前使用比较多的VMware Vsphere.发现在不进入VM系统的情况下,Vsphere可以查看VM的IP地址,.如下: 同时你也会发现,Vsphere只能查看VM的IP地址,不能查看其他的信息.如果要查看的话,只能登录到VM系统中查看.而且要查看VM的IP地址的话,我们还需要在VM的系统中安装好vmtools这个软件包. 当然,我们也可以通过描述来解决查看虚拟机的相关情况.如下: 此时再来对比KVM中的V