如何向PHP伪造自己的ip

如何向PHP伪造自己的ip,第1张

要看具体代码是怎么写的,如果代码写得不好是有可能伪造的。

获取IP的方法有几种,通过例子看一下,这个是ThinkPHP里的获取IP的函数:

/**

* 获取客户端IP地址

* @param integer $type 返回类型 0 返回IP地址 1 返回IPV4地址数字

* @param boolean $adv 是否进行高级模式获取(有可能被伪装)

* @return mixed

*/

function get_client_ip($type = 0,$adv=false) {

$type = $type ? 1 : 0

static $ip = NULL

if ($ip !== NULL) return $ip[$type]

if($adv){

if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {

$arr= explode(',', $_SERVER['HTTP_X_FORWARDED_FOR'])

$pos= array_search('unknown',$arr)

if(false !== $pos) unset($arr[$pos])

$ip = trim($arr[0])

}elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {

$ip = $_SERVER['HTTP_CLIENT_IP']

}elseif (isset($_SERVER['REMOTE_ADDR'])) {

$ip = $_SERVER['REMOTE_ADDR']

}

}elseif (isset($_SERVER['REMOTE_ADDR'])) {

$ip = $_SERVER['REMOTE_ADDR']

}

// IP地址合法验证

$long = sprintf("%u",ip2long($ip))

$ip = $long ? array($ip, $long) : array('0.0.0.0', 0)

return $ip[$type]

}

$_SERVER['HTTP_CLIENT_IP'] 是HTTP信息中的IP,存在于http请求的header中,可以伪造

$_SERVER["REMOTE_ADDR"] 可取得客户端的 IP 地址,但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的 IP 地址,而不是真正的客户端 IP 地址。不可以伪造,但可以用代理。

$_SERVER["HTTP_X_FORWARDED_FOR"] 可以透过代理服务器取得客户端的真实 IP 地址,但有时候也不管用,也可以伪造。

伪造IP是不可能的,HTTP协议是机遇TCP,你发送GET命令过去必须留有准确的IP地址,否则对方无法把结果发给你,你与服务器xxx.xxx.xx的通讯相当于写信,你匿名写信只能攻击,要获取返回的东西必须提交真实的地址。

无论使用CURL还是别的方法,都要受前面的基本规则限制。

编程上已经没有办法可走了,你可以考虑使用代理,通过代理服务器去获取数据,查封就换个代理服务器。不过现在代理服务器是很难找的。

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我怎么知道!


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/687353.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-07-31
下一篇2023-07-31

发表评论

登录后才能评论

评论列表(0条)

    保存