1、PHP代碼如何放行代理伺服器IP
<?php
//授權 IP
$ips = ['119.29.29.29', '8.8.8.8'];
//代理IP直接退出
empty($_SERVER['HTTP_VIA']) or exit('Access Denied');
//防止快速刷新
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('Access Denied');
}
} else {
$_SESSION['refresh_times'] = 0;
$_SESSION['last_time'] = $cur_time;
}
function getIP() {
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;
}
2、php 怎樣獲取伺服器ip地址
進入php源程序目錄中的ext目錄中,這里存放著各個擴展模塊的源代碼,選擇你需要的模塊,比如curl模塊:cd curl
執行phpize生成編譯文件,phpize在PHP安裝目錄的bin目錄下
/usr/local/php5/bin/phpize
運行時,可能會報錯:Cannot find autoconf. Please check your autoconf installation and
the $PHP_AUTOCONF
environment variable is set correctly and then rerun this
script.,需要安裝autoconf:
yum install autoconf(RedHat或者CentOS)、apt-get install
autoconf(Ubuntu Linux)
/usr/local/php5/bin/php -v
執行這個命令時,php會去檢查配置文件是否正確,如果有配置錯誤,
這里會報錯,可以根據錯誤信息去排查!
3、PHP中如何獲取伺服器IP
$_SERVER['SERVER_ADDR']獲取伺服器的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發送數據?
fsockopen
這個方法能行的,
6、如何設置PHP 伺服器 通過IP訪問
如果你是用的apache的話,你可以查看下配置文件中的Listen部分,改成Listen 80就可以監聽所有網段了。如果是其他的伺服器,再補充下問題吧~
嗯,還有你電腦有哪些防火牆,windows的防火牆也會讓apache不能從其他機器訪問~~你試試^_^
7、php 修改伺服器IP
1.確認執行該PHP腳本的系統具備修改伺服器IP/子網掩碼/網關的許可權.
2.確認你的PHP運行執行shell_exec的函數,這個函數在安全模式下是被屏蔽的.
3.確認你在shell_exec裡面執行的系統命令行是正確的.
簡單的例子:
$ vi test.php
#!/usr/bin/php
<?php
$rsl = shell_exec("fconfig eth0 192.168.1.2 netmask 255.255.255.0"); //改ip和子網掩碼的.
$rsl2 = shell_exec("route add default gw 192.168.1.1"); //設置網關
echo $rsl."\n".$rsl2;//看看返回的結果.
?>
$ chmod 755 test.php -- 給腳本增加執行的許可權
$ ./test.php
參考其他函數:
exec()
system()
等等.
windows下怎麼做?
我又沒錢買windows我怎麼知道!
8、用PHP代碼如何實現真實IP和代理IP
幫你編一段測試代碼,樓主試試吧!
<?PHP
if ($_SERVER['HTTP_X_FORWARDED_FOR'] == "")
{
echo '您的IP地址是內:容'.$_SERVER['HTTP_X_FORWARDED_FOR']."
";
echo '沒有使用代理。
'
}
else
{
echo '您的IP地址是:'.$_SERVER['HTTP_X_FORWARDED_FOR']."
";
echo '代理的IP地址:'.$_SERVER['REMOTE_ADDR'].'
';
}
?>
這代碼只能正確顯示對方使用透明代理時的結果~
希望對你有幫助!
9、如何用php獲取客戶端和伺服器的ip地址????
客戶端 $_SERVER[REMOTE_ADDR]
伺服器 $_SERVER[SERVER_ADDR]