1. 用php写出显示客户端IP与服务器IP的代码
服务器IP用:
echo(gethostbyname($SERVER_NAME));
客户端IP用下面函数:
function iptype1 () {
if (getenv("HTTP_CLIENT_IP")) {
return
getenv("HTTP_CLIENT_IP");
}
else {
return "none";
}
}
function iptype2 () {
if (getenv("HTTP_X_FORWARDED_FOR")) {
return getenv("HTTP_X_FORWARDED_FOR");
}
else {
return "none";
}
}
function iptype3 () {
if (getenv("REMOTE_ADDR")) {
return getenv("REMOTE_ADDR");
}
else {
return "none";
}
}
function ip() {
$ip1 = iptype1();
$ip2 = iptype2();
$ip3
= iptype3();
if (isset($ip1) && $ip1 != "none" && $ip1 !=
"unknown") {
return $ip1;
}
elseif (isset($ip2) && $ip2
!= "none" && $ip2 != "unknown") {
return $ip2;
}
elseif
(isset($ip3) && $ip3 != "none" && $ip3 != "unknown") {
return $ip3;
}
else {
return "none";
}
}
使用时,直接调用ip();
2. PHP中如何获取服务器IP
$_SERVER['SERVER_ADDR']获取服务器的IP地址
3. PHP代码如何放行代理服务器IP
<?php
//授权IP
$ips=['119.29.29.29','8.8.8.8'];
//代理IP直接退出
empty($_SERVER['HTTP_VIA'])orexit('AccessDenied');
//防止快速刷新
session_start();
$seconds='3';//时间段[秒]
$refresh='5';//刷新次数
//设置监控变量
$cur_time=time();
if(isset($_SESSION['last_time'])){
$_SESSION['refresh_times']+=1;
}else{
$_SESSION['refresh_times']=1;
$_SESSION['last_time']=$cur_time;
}
//处理监控结果
if($cur_time-$_SESSION['last_time']<$seconds){
if($_SESSION['refresh_times']>=$refresh&&!in_array($getIP,$ips)){
//跳转至攻击者服务器地址
header(sprintf('Location:%s','
));
exit('AccessDenied');
}
}else{
$_SESSION['refresh_times']=0;
$_SESSION['last_time']=$cur_time;
}
functiongetIP(){
if(getenv('HTTP_CLIENT_IP')){
$ip=getenv('HTTP_CLIENT_IP');
}elseif(getenv('HTTP_X_FORWARDED_FOR')){
$ip=getenv('HTTP_X_FORWARDED_FOR');
}elseif(getenv('HTTP_X_FORWARDED')){
$ip=getenv('HTTP_X_FORWARDED');
}elseif(getenv('HTTP_FORWARDED_FOR')){
$ip=getenv('HTTP_FORWARDED_FOR');
}elseif(getenv('HTTP_FORWARDED')){
$ip=getenv('HTTP_FORWARDED');
}else{
$ip=$_SERVER['REMOTE_ADDR'];
}
return$ip;
}
4. php实现图形显示Ip地址的代码及注释
使用图形显示Ip,文件
sunip.php
复制代码
代码如下:
<?php
header("Content-type:
image/gif");
$im
=
imagecreate(130,15);
$background_color
=
ImageColorAllocate
($im,
255,
255,
255);
unset($ip);
if($_SERVER['HTTP_CLIENT_IP']){
$ip=$_SERVER['HTTP_CLIENT_IP'];
}
else
if($_SERVER['HTTP_X_FORWARDED_FOR']){
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else{
$ip=$_SERVER['REMOTE_ADDR'];
}
//
www.jb51.net
$col
=
imagecolorallocate($im,
0,
51,
102);
imagestring($im,
3,
5,
1,
$ip
,
$col);
imagegif($im);
imagedestroy($im);
?>
1.
<?php
2.
header("Content-type:
image/gif");
第二行
声明浏览器标头
输出为GIF图形
3.
$im
=
imagecreate(130,15);
建立一个图形
imagecreate(130,15)括号内130,15分别代表宽度和高度
4.
$background_color
=
ImageColorAllocate
($im,
255,
255,
255);
设置背景颜色
imagecolorallocate
为一幅图片分配颜色
($im,
255,
255,
255)im代表前面提到的新建图形
后面的3个255则代表颜色表ffffff的10进制字符
5.
unset($ip);
无用
6.if($_SERVER['HTTP_CLIENT_IP']){
$ip=$_SERVER['HTTP_CLIENT_IP'];
}
else
if($_SERVER['HTTP_X_FORWARDED_FOR']){
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else{
$ip=$_SERVER['REMOTE_ADDR'];
}
如果$_SERVER['HTTP_CLIENT_IP']可以使用则使用$_SERVER['HTTP_CLIENT_IP']下面类似
为判断
此段是为了兼容多种服务器设置
7.
$col
=
imagecolorallocate($im,
0,
51,
102);
定义文字颜色
8.
imagestring($im,
3,
5,
1,
$ip
,
$col);
将获取到的IP画到新建的画布上
imagestring($im,
3,
5,
1,
$ip
,
$col);
分别代表imagestring(图形表示,字符尺寸1-5,X坐标,Y坐标,输出的IP,颜色)
9.
imagegif($im);
输出GIF图形
10.
imagedestroy($im);
释放内存
11.
?>
程序结束
5. 用php来获得客户端服务器ip的方法
<?php
echo
"当前脚本服务器的主机名:".gethostbyaddr($_SERVER['REMOTE_ADDR'])."<br
/><hr
/>";
echo
"获得当前运行PHP脚本(页面)所在的服务器的
IP
地址:".$_SERVER['SERVER_ADDR']."<br
/><hr
/>";
echo
"获得当前运行PHP脚本(页面)所在的服务器的
主机名:".$_SERVER['SERVER_NAME'];
echo
'<hr>';
echo
'客户端ip'.
$_SERVER['REMOTE_ADDR'];
echo
'<br>';
echo
'客户端ip'.getenv('REMOTE_ADDR');
echo
"<br>";
echo
'服务器主机ip'.gethostbyname("www.qq.com");
?>
运行出来:
当前脚本服务器的主机名:XYL-PC
获得当前运行PHP脚本(页面)所在的服务器的
IP
地址:127.0.0.1
获得当前运行PHP脚本(页面)所在的服务器的
主机名:localhost
客户端ip127.0.0.1
客户端ip127.0.0.1
服务器主机ip61.135.169.105
6. php 怎么获取服务器端ip地址
<?php
functiongetIp()
{
$IPaddress='';
if(isset($_SERVER)){
if(isset($_SERVER["HTTP_X_FORWARDED_FOR"])){
$IPaddress=$_SERVER["HTTP_X_FORWARDED_FOR"];
}elseif(isset($_SERVER["HTTP_CLIENT_IP"])){
$IPaddress=$_SERVER["HTTP_CLIENT_IP"];
}else{
$IPaddress=$_SERVER["REMOTE_ADDR"];
}
}else{
if(getenv("HTTP_X_FORWARDED_FOR")){
$IPaddress=getenv("HTTP_X_FORWARDED_FOR");
}elseif(getenv("HTTP_CLIENT_IP")){
$IPaddress=getenv("HTTP_CLIENT_IP");
}else{
$IPaddress=getenv("REMOTE_ADDR");
}
}
return$IPaddress;
}
echogetIp();//就可以输出用户的IP地址。
?>
获取服务器端ip地址
<?php
functionserverIp(){
if(isset($_SERVER)){
if($_SERVER['SERVER_ADDR']){
$server_ip=$_SERVER['SERVER_ADDR'];
}else{
$server_ip=$_SERVER['LOCAL_ADDR'];
}
}else{
$server_ip=getenv('SERVER_ADDR');
}
return$server_ip;
}
echoserverIp();
?>
此方法在本地不可用。需要上传至服务器
如果在本地使用此方法 打印出来的是127.0.0.1
希望对你有帮助
7. PHP获取客户端外网ip代码
function get_real_ip()
{
$ip=FALSE;
//客户端IP 或 NONE
if(!empty($_SERVER["HTTP_CLIENT_IP"])){
$ip = $_SERVER["HTTP_CLIENT_IP"];
}
//多重代理服务器下的客户端真实IP地址(可能伪造),如果没有使用代理,此字段为空
if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
if ($ip) { array_unshift($ips, $ip); $ip = FALSE; }
for ($i = 0; $i < count($ips); $i++) {
if (!eregi ("^(10│172.16│192.168).", $ips[$i])) {
$ip = $ips[$i];
break;
}
}
}
//客户端IP 或 (最后一个)代理服务器 IP
return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);
}
8. PHP如何获取服务器外网IP
1.关于外网IP变更问题,如果你手头上有 IP资源,建议绑定。就是你申请的静态IP。
2.如果自己没有静态IP,那么如果你有域名,可以通过 花生壳这些软件,绑定自己的服务器。这样就算IP怎样变化,直接访问域名就可以了。
2.1.花生壳带有一些二级域名的,功能也差不多。
-----------------------------------
另外,可以写一个功能cURL,让你的服务器定期访问一个站点(私有站点,要权限进入),这个站点你可以获取访问者的IP。