++++300求个方便---要:关于[多线程]搜索[指定ip段]的[指定端口]的代码++++ (300分)

  • 主题发起人 主题发起人 liuguan
  • 开始时间 开始时间
另外:如果端口是21 就是ftp 如何做到多线程取得ftp服务器上的文件信息(就是看到有什么
文件,大小,类型,)这个另算分300
 
第二个个问题我用脚本来解决

我的qq是:56099398
 
to 张无忌:
能否给一份源码?mai:workid@163.com
3kx!
 
我也要
mail:zqzcs2003@yahoo.com.cn
QQ:181373067
 
我这边也有一个,贴出来

unit ScanPortThreadUnit;

interface

uses
Classes, IdTCPClient,SysUtils,ComCtrls,IdSocks;

type
ScanPortThread = class(TThread)
private
{ Private declarations }
protected
SaveTL:TListView;
ScanTheIP :String;
ScanThePort:integer;
MyTcpClient:TIdTcpClient;
//TheScktInfo:TSocksInfo;
Procedure SaveIP;
procedure Execute; override;
public
Constructor Create(TheIP:String;ThePort:integer;TheTL:TListView);
Destructor Destroy;override;
end;

implementation
uses ScanIPUnit;

Constructor ScanPortThread.Create(TheIP:String;ThePort:integer;TheTL:TListView);
begin
inherited Create(True);
self.FreeOnTerminate:=True;
ScanTheIP:=TheIP;
ScanThePort :=ThePort;
SaveTL:=TheTL;
MyTcpClient:=TIdTcpClient.Create(nil);
//TheScktInfo:=TSocksInfo.Create;

LetPingSingle.Enter;
SdPingCount:=SdPingCount+1;
LetPingSingle.Leave;

self.Suspended:=False;
end;

procedure ScanPortThread.Execute;
begin
//TheScktInfo.Authentication:=saNoAuthentication;
//TheScktInfo.Version:=svNoSocks;
//TheScktInfo.Port:=0;
//MyTcpClient.SocksInfo:=TheScktInfo;
//MyTcpClient.UseNagle:=True;
MyTcpClient.Host:=ScanTheIP;
MyTcpClient.Port:=ScanThePort;
try
MyTcpClient.Connect;
except
end;
if MyTcpClient.Connected then
begin
Synchronize(SaveIP);
MyTcpClient.Disconnect;
end;
Self.Terminate;
end;

Procedure ScanPortThread.SaveIP;
var
TheListItem:TListItem;
begin
try
TheListItem:=SaveTL.Items.Add;
TheListItem.ImageIndex:=0;
TheListItem.Caption:=ScanTheIP;
TheLIstItem.SubItems.Add('0');
TheLIstItem.SubItems.Add('0');
TheLIstItem.SubItems.Add('0');
TheLIstItem.SubItems.Add('0');
TheLIstItem.SubItems.Add(IntToStr(ScanThePort));
except
end;
end;

Destructor ScanPortThread.Destroy;
begin
MyTcpClient.Free;
//TheScktInfo.Free;
LetPingSingle.Enter;
SdPingCount:=SdPingCount-1;
LetPingSingle.Leave;
inherited Destroy;
end;

end.

 
unit ScanHostPortThreadUnit;

interface

uses
Classes, IdTCPClient,SysUtils,ComCtrls,IdSocks;

type
ScanHostPortThread = class(TThread)
private
{ Private declarations }
protected
SaveTL:TTreeView;
ScanTheIP :String;
ScanThePort:integer;
MyTcpClient:TIdTcpClient;
//TheScktInfo:TSocksInfo;
Procedure SaveIP;
procedure Execute; override;
public
Constructor Create(TheIP:String;ThePort:integer;TheTL:TTreeView);
Destructor Destroy;override;
end;

implementation
uses
ScanIPUnit;

Constructor ScanHostPortThread.Create(TheIP:String; ThePort:integer; TheTL:TTreeView);
begin
inherited Create(True);
self.FreeOnTerminate:=True;
ScanTheIP:=TheIP;
ScanThePort :=ThePort;
SaveTL:=TheTL;
MyTcpClient:=TIdTcpClient.Create(nil);
//TheScktInfo:=TSocksInfo.Create;

LetScanSingle.Enter;
SdScanCount:=SdScanCount+1;
LetScanSingle.Leave;

self.Suspended:=False;
end;

procedure ScanHostPortThread.Execute;
begin
//TheScktInfo.Authentication:=saNoAuthentication;
//TheScktInfo.Version:=svNoSocks;
//TheScktInfo.Port:=0;
// MyTcpClient.SocksInfo:=TheScktInfo;
// MyTcpClient.UseNagle:=True;
MyTcpClient.Host:=ScanTheIP;
MyTcpClient.Port:=ScanThePort;
try
MyTcpClient.Connect;
except
end;
if MyTcpClient.Connected then
begin
Synchronize(SaveIP);
MyTcpClient.Disconnect;
end;
Self.Terminate;
end;

Procedure ScanHostPortThread.SaveIP;
var
i:integer;
TheNode:TTreeNode;
TheNewNode:TTreeNode;
begin
For i:=0 to SaveTL.Items.Count-1 do
begin
if SaveTL.Items.Text=ScanTheIP then
TheNode:=SaveTL.Items;
end;
TheNewNode:=SaveTL.Items.AddChild(TheNode,IntToStr(ScanThePort));
TheNewNode.ImageIndex:=1;
TheNewNode.SelectedIndex:=1;
TheNewNode.StateIndex:=1;
end;

Destructor ScanHostPortThread.Destroy;
begin
MyTcpClient.Free;
//TheScktInfo.Free;
LetScanSingle.Enter;
SdScanCount:=SdScanCount-1;
LetScanSingle.Leave;
inherited Destroy;
end;

end.

 
unit ScanIPUnit;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, ComCtrls, StdCtrls, Mask, Spin, Buttons,Gauges,StrUtils,
SyncObjs, IdBaseComponent, IdComponent, IdIPWatch, Menus,ImgList, IPEdit;

type
TScanIPFm = class(TForm)
Panel2: TPanel;
Panel3: TPanel;
Splitter: TSplitter;
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
sBtnStratScanIP: TSpeedButton;
sBtnStopScanIP: TSpeedButton;
Gauge2: TGauge;
Gauge3: TGauge;
RadioGroupIP: TRadioGroup;
Label3: TLabel;
edtPort: TEdit;
RadioGroupHost: TRadioGroup;
Panel6: TPanel;
Label4: TLabel;
edtHost: TEdit;
Label5: TLabel;
edtPortFrom: TEdit;
Label6: TLabel;
edtPortTo: TEdit;
Gauge1: TGauge;
sBtnStartScanHost: TSpeedButton;
sBtnStopScanHost: TSpeedButton;
Panel7: TPanel;
tvwScan: TTreeView;
Panel8: TPanel;
Timer1: TTimer;
Gauge4: TGauge;
SpinEditMaxThread: TSpinEdit;
Label9: TLabel;
Panel9: TPanel;
lstVwScan: TListView;
ComboBoxIP: TComboBox;
Label12: TLabel;
IdIPWatch1: TIdIPWatch;
PopupMenu1: TPopupMenu;
PopupMenu2: TPopupMenu;
mnulvwDeleteItem: TMenuItem;
mnulvwClearAll: TMenuItem;
ImageList1: TImageList;
Gauge5: TGauge;
mnulvwSelectAll: TMenuItem;
mnulvwCancelAll: TMenuItem;
mnutvwDelete: TMenuItem;
mnutvwDelAll: TMenuItem;
IPEditFrom: TIPEdit;
IPEditTo: TIPEdit;
Label1: TLabel;
Label2: TLabel;
plScanStatus: TPanel;
procedure RadioGroupIPClick(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure sBtnStratScanIPClick(Sender: TObject);
procedure sBtnStopScanIPClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure lstVwScanMouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);
procedure SpeedButton15Click(Sender: TObject);
procedure lstVwScanClick(Sender: TObject);
procedure RadioGroupHostClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure mnulvwDeleteItemClick(Sender: TObject);
procedure mnulvwClearAllClick(Sender: TObject);
procedure sBtnStartScanHostClick(Sender: TObject);
procedure mnulvwSelectAllClick(Sender: TObject);
procedure mnulvwCancelAllClick(Sender: TObject);
procedure mnutvwDeleteClick(Sender: TObject);
procedure mnutvwDelAllClick(Sender: TObject);
procedure SpinEditMaxThreadChange(Sender: TObject);
private
{ Private declarations }
public
FromA_IP,ToA_IP : Byte;
FromB_IP,ToB_IP : Byte;
FromC_IP,ToC_IP : Byte;
FromD_IP,ToD_IP : Byte;
procedure FillLocalIP;
procedure GetTheScanIP;
procedure PingPorcess;
Procedure ScanPortPorcess;
procedure SingleHostScan;
procedure SingleHostScan2;
procedure MultiHostScan;
end;
var
ScanIPFm : TScanIPFm;
OldEditText : String;
LetPingSingle: TCriticalSection;
LetScanSingle: TCriticalSection;
SdPingCount : Integer;
SdScanCount : integer;
MultiPingCount:integer;
MultiScanCount:integer;

implementation
uses
PingThreadUnit,ScanPortThreadUnit,ScanHostPortThreadUnit{, UserInfo};

{$R *.dfm}
procedure TScanIPFm.GetTheScanIP;
begin
FromA_IP:=IPEditFrom.Field0; ToA_IP:= IPEditTo.Field0;
FromB_IP:=IPEditFrom.Field1; ToB_IP:= IPEditTo.Field1;
FromC_IP:=IPEditFrom.Field2; ToC_IP:= IPEditTo.Field2;
FromD_IP:=IPEditFrom.Field3; ToD_IP:= IPEditTo.Field3;
end;

procedure TScanIPFm.FillLocalIP;
var
i:integer;
TheIndex:integer;
TheIPStr:string;
begin
try
TheIPStr:=ComboBoxIP.Text;
For i:=1 to Length(TheIPStr) do
begin
if TheIPStr='.' then
begin
TheIndex:=i;
IPEditFrom.Field0:=StrToInt(StrUtils.leftStr(TheIPStr,TheIndex-1));
IPEditTo.Field0:=IPEditFrom.Field0;
TheIPStr:=StrUtils.RightStr(TheIPStr,Length(TheIPStr)-TheIndex);
break;
end;
end;
For i:=1 to Length(TheIPStr) do
begin
if TheIPStr='.' then
begin
TheIndex:=i;
IPEditFrom.Field1:=StrToInt(StrUtils.leftStr(TheIPStr,TheIndex-1));
IPEditTo.Field1:=IPEditFrom.Field1;
TheIPStr:=StrUtils.RightStr(TheIPStr,Length(TheIPStr)-TheIndex);
break;
end;
end;
For i:=1 to Length(TheIPStr) do
begin
if TheIPStr='.' then
begin
TheIndex:=i;
IPEditFrom.Field2:=StrToInt(StrUtils.leftStr(TheIPStr,TheIndex-1));
IPEditTo.Field2:=IPEditFrom.Field2;
TheIPStr:=StrUtils.RightStr(TheIPStr,Length(TheIPStr)-TheIndex);
break;
end;
end;
IPEditFrom.Field3:=StrToInt(TheIPStr);
IPEditTo.Field3:=IPEditFrom.Field3;
except

end;
end;

procedure TScanIPFm.PingPorcess;
var
iA,iB,iC,iD:integer;
ThePingIP:String;
ThePingThread:PingThread;
TheTimeStr :String;
TotalCount:int64;
begin
if SdPingCount>0 then exit;
Timer1.Enabled:=True;
TotalCount:=0;
GetTheScanIP;
TheTimeStr:=TimeToStr(Time);
For iA:=FromA_IP To ToA_IP do
For iB:=FromB_IP To ToB_IP do
For iC:=FromC_IP To ToC_IP do
For iD:=FromD_IP To ToD_IP do
begin
TotalCount:=TotalCount+1;
end;
Gauge4.MaxValue:=MultiPingCount;
Gauge2.Progress:=0;
try
Gauge2.MaxValue:=TotalCount;
except
beep;
sBtnStartScanHost.Down:=True;
plScanStatus.Caption:='搜索初始化错误!';
Timer1.Enabled:=False;
exit;
end;
For iA:=FromA_IP To ToA_IP do
For iB:=FromB_IP To ToB_IP do
For iC:=FromC_IP To ToC_IP do
For iD:=FromD_IP To ToD_IP do
begin
ThePingIP:=IntToStr(iA)+'.'+IntToStr(iB)+'.'+ IntToStr(iC)+'.'+IntToStr(iD);

IPEditFrom.Field0:=iA;
IPEditFrom.Field1:=iB;
IPEditFrom.Field2:=iC;
IPEditFrom.Field3:=iD;

Repeat //设置阻塞操作
Application.ProcessMessages;
Gauge4.Progress:=SdPingCount;
plScanStatus.Caption:='当前共发出'+IntToStr(SdPingCount)+'个搜索线程';
if sBtnStopScanIP.Down then
begin
Repeat
Application.ProcessMessages;
Gauge4.Progress:=SdPingCount;
plScanStatus.Caption:='当前还有'+IntToStr(SdPingCount)
+'个搜索线程未返回,请稍候...';
until SdPingCount=0;
sBtnStopScanIP.Down:=True;
Timer1.Enabled:=False;
Gauge4.Progress:=0;
TheTimeStr:='扫描时间从:'+TheTimeStr+' 到:'+TimeToStr(Time);
Application.MessageBox(PChar(TheTimeStr),'扫描中断',
MB_OK+MB_ICONSTOP);
plScanStatus.Caption:='搜索线程已经全部返回!';
exit;
end;
until SdPingCount<MultiPingCount;
try
ThePingThread:=PingThread.Create(ThePingIP,lstVwScan);
except
beep;
sBtnStopScanIP.Down:=True;
plScanStatus.Caption:='搜索线程创建错误错误!';
end;
Gauge2.Progress:=Gauge2.Progress+1;
end;
Repeat
Application.ProcessMessages;
Gauge4.Progress:=SdPingCount;
plScanStatus.Caption:='当前还有'+IntToStr(SdPingCount)+'个搜索线程未返回,请稍候...';

until SdPingCount=0;
sBtnStopScanIP.Down:=True;
Timer1.Enabled:=False;
TheTimeStr:='扫描时间从:'+TheTimeStr+' 到:'+TimeToStr(Time);
plScanStatus.Caption:='搜索线程已经全部返回!';
Gauge4.Progress:=0;
Application.MessageBox(PChar(TheTimeStr),'扫描完毕',
MB_OK+MB_ICONINFORMATION);
end;

Procedure TScanIPFm.ScanPortPorcess;
var
iA,iB,iC,iD:integer;
ThePingIP:String;
TheScanThread:ScanPortThread;
TheTimeStr :String;
TotalCount:int64;
begin
if SdPingCount>0 then exit;
Timer1.Enabled:=True;
TotalCount:=0;
GetTheScanIP;
TheTimeStr:=TimeToStr(Time);
For iA:=FromA_IP To ToA_IP do
For iB:=FromB_IP To ToB_IP do
For iC:=FromC_IP To ToC_IP do
For iD:=FromD_IP To ToD_IP do
begin
TotalCount:=TotalCount+1;
end;
Gauge4.MaxValue:=MultiPingCount;
Gauge2.Progress:=0;
try
Gauge2.MaxValue:=TotalCount;
except
beep;
sBtnStopScanIP.Down:=True;
plScanStatus.Caption:='搜索初始化错误!';
Timer1.Enabled:=False;
exit;
end;
For iA:=FromA_IP To ToA_IP do
For iB:=FromB_IP To ToB_IP do
For iC:=FromC_IP To ToC_IP do
For iD:=FromD_IP To ToD_IP do
begin
ThePingIP:=IntToStr(iA)+'.'+IntToStr(iB)+'.'+
IntToStr(iC)+'.'+IntToStr(iD);

IPEditFrom.Field0:=iA;
IPEditFrom.Field1:=iB;
IPEditFrom.Field2:=iC;
IPEditFrom.Field3:=iD;

Repeat //设置阻塞操作
Application.ProcessMessages;
Gauge4.Progress:=SdPingCount;
plScanStatus.Caption:='当前共发出'+IntToStr(SdPingCount)+'个搜索线程';
if sBtnStopScanIP.Down then
begin
Repeat
Application.ProcessMessages;
Gauge4.Progress:=SdPingCount;
plScanStatus.Caption:='当前还有'+IntToStr(SdPingCount)
+'个搜索线程未返回,请稍候...';
until SdPingCount=0;
sBtnStopScanIP.Down:=True;
Timer1.Enabled:=False;
Gauge4.Progress:=0;
TheTimeStr:='扫描时间从:'+TheTimeStr+' 到:'+TimeToStr(Time);
Application.MessageBox(PChar(TheTimeStr),'扫描中断',
MB_OK+MB_ICONSTOP);
plScanStatus.Caption:='搜索线程已经全部返回!';
exit;
end;
until SdPingCount<MultiPingCount;
try
TheScanThread:=ScanPortThread.Create(ThePingIP,
StrToInt(edtPort.Text),lstVwScan);
except
beep;
sBtnStopScanIP.Down:=True;
plScanStatus.Caption:='搜索线程创建错误错误!';
end;
Gauge2.Progress:=Gauge2.Progress+1;
end;
Repeat
Application.ProcessMessages;
Gauge4.Progress:=SdPingCount;
plScanStatus.Caption:='当前还有'+IntToStr(SdPingCount) +'个搜索线程未返回,请稍候...';

until SdPingCount=0;
sBtnStopScanIP.Down:=True;
Timer1.Enabled:=False;
TheTimeStr:='扫描时间从:'+TheTimeStr+' 到:'+TimeToStr(Time);
plScanStatus.Caption:='搜索线程已经全部返回!';
Gauge4.Progress:=0;
Application.MessageBox(PChar(TheTimeStr),'扫描完毕',
MB_OK+MB_ICONINFORMATION);
end;

procedure TScanIPFm.SingleHostScan;
var
i:integer;
ThePortScan:ScanHostPortThread;
TheNewNode:TTreeNode;
FromPort,ToPort:integer;
begin
if SdScanCount<>0 then exit;

TheNewNode:=tvwScan.Items.Add(nil,edtHost.Text);
TheNewNode.ImageIndex:=0;
TheNewNode.StateIndex:=0;
TheNewNode.SelectedIndex:=0;
Gauge1.MaxValue:=StrToInt(edtPortTo.Text);
Gauge1.Progress:=0;
Gauge5.MaxValue:=MultiScanCount;
Gauge5.Progress:=0;
FromPort:=StrToInt(edtPortFrom.text);
ToPort:=StrToInt(edtPortTo.text);
For i:=FromPort To ToPort do
begin
repeat
Application.ProcessMessages;
Gauge5.Progress:=SdScanCount;
if sBtnStopScanHost.Down then
begin
repeat
Application.ProcessMessages;
Gauge5.Progress:=SdScanCount;
until SdScanCount=0;
Application.MessageBox('扫描由您主动结束','扫描中断',
MB_OK+MB_ICONSTOP);
Gauge5.Progress:=0;
exit;
end;
until SdScanCount<MultiScanCount;
Gauge1.Progress:=i;
Gauge5.Progress:=SdScanCount;
Panel8.Caption:='扫描'+edtHost.Text+':'+IntToStr(i);
Try
ThePortScan:=ScanHostPortThread.Create(edtHost.Text,i,tvwScan);
except
end;
end;
repeat
Application.ProcessMessages;
Gauge5.Progress:=SdScanCount;
until SdScanCount=0;
sBtnStopScanHost.Down:=True;
Gauge5.Progress:=0;
Application.MessageBox('扫描任务完成!','扫描完毕',
MB_OK + MB_ICONINFORMATION);
end;

procedure TScanIPFm.SingleHostScan2;
var
i:integer;
ThePortScan:ScanHostPortThread;
FromPort,ToPort:integer;
begin
Gauge1.MaxValue:=StrToInt(edtPortTo.Text);
Gauge1.Progress:=0;
Gauge5.MaxValue:=MultiScanCount;
Gauge5.Progress:=0;
FromPort:=StrToInt(edtPortFrom.text);
ToPort:=StrToInt(edtPortTo.text);
For i:=FromPort To ToPort do
begin
repeat
Application.ProcessMessages;
Gauge5.Progress:=SdScanCount;
if sBtnStopScanHost.Down then
begin
repeat
Application.ProcessMessages;
Gauge5.Progress:=SdScanCount;
until SdScanCount=0;
Application.MessageBox('扫描由您主动结束','扫描中断',
MB_OK+MB_ICONSTOP);
Gauge5.Progress:=0;
exit;
end;
until SdScanCount<MultiScanCount;
Gauge1.Progress:=i;
Gauge5.Progress:=SdScanCount;
Panel8.Caption:='扫描'+edtHost.Text+':'+IntToStr(i);
Try
ThePortScan:=ScanHostPortThread.Create(edtHost.Text,i,tvwScan);
except
end;
end;
repeat
Application.ProcessMessages;
Gauge5.Progress:=SdScanCount;
until SdScanCount=0;
Gauge5.Progress:=0;
end;

procedure TScanIPFm.MultiHostScan;
var
i:integer;
TheNewNode:TTreeNode;
begin
SdScanCount:=0;
For i:=0 to lstVwScan.Items.Count-1 do
begin
if lstVwScan.Items.Checked then
begin
edtHost.Text:=lstVwScan.Items.Caption;
TheNewNode:=tvwScan.Items.Add(nil,edtHost.Text);
TheNewNode.ImageIndex:=0;
TheNewNode.StateIndex:=0;
TheNewNode.SelectedIndex:=0;
Repeat
Application.ProcessMessages;
if sBtnStopScanHost.Down then exit;
until SdScanCount=0;
SingleHostScan2;
end;
end;
Application.MessageBox('扫描任务完成!','扫描完毕',
MB_OK+MB_ICONINFORMATION);
sBtnStopScanHost.Down:=True;
end;

procedure TScanIPFm.RadioGroupIPClick(Sender: TObject);
begin
if RadioGroupIP.ItemIndex=0 then
edtPort.Enabled:=False else
edtPort.Enabled:=True;
end;

procedure TScanIPFm.Timer1Timer(Sender: TObject);
var
MidColor:TColor;
begin
Gauge3.Progress:=Gauge3.Progress+10;

if Gauge3.Progress=100 then
begin
Gauge3.Progress:=0;
MidColor:=Gauge3.BackColor;
Gauge3.BackColor:=Gauge3.ForeColor;
Gauge3.ForeColor:=MidColor;
end;
end;

procedure TScanIPFm.sBtnStratScanIPClick(Sender: TObject);
begin
if RadioGroupIp.ItemIndex=1 then
ScanPortPorcess else PingPorcess;
end;

procedure TScanIPFm.sBtnStopScanIPClick(Sender: TObject);
begin
Timer1.Enabled:=false;
end;

procedure TScanIPFm.FormCreate(Sender: TObject);
begin
OldEditText:='0';
SdPingCount :=0;
SdScanCount :=0;
MultiPingCount:=100;
MultiScanCount:=100;
LetPingSingle:=TCriticalSection.Create;
LetScanSingle:=TCriticalSection.Create;
end;

procedure TScanIPFm.FormDestroy(Sender: TObject);
begin
LetPingSingle.Free;
LetScanSingle.Free;
end;

procedure TScanIPFm.lstVwScanMouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
begin
lstVwScan.Hint:='共搜索到'+IntToStr(lstVwScan.Items.Count)+'个';
end;

procedure TScanIPFm.SpeedButton15Click(Sender: TObject);
begin
Close;
end;

procedure TScanIPFm.lstVwScanClick(Sender: TObject);
begin
if lstVwScan.Selected<>nil then
edtHost.Text:=lstVwScan.Selected.Caption;

end;

procedure TScanIPFm.RadioGroupHostClick(Sender: TObject);
begin
if RadioGroupHost.ItemIndex=0 then
edtHost.Enabled:=True
else
edtHost.Enabled:=False;

end;

procedure TScanIPFm.FormShow(Sender: TObject);
begin
IdIPWatch1.Active:=True;
ComboBoxIP.Text:=IdIPWatch1.CurrentIP;
ComboBoxIP.Items.Text:=IdIPWatch1.IPHistoryList.Text;
IdIPWatch1.Active:=False;
FillLocalIP;
end;

procedure TScanIPFm.mnulvwDeleteItemClick(Sender: TObject);
begin
if lstVwScan.Selected<>nil then
lstVwScan.Selected.Delete;
end;

procedure TScanIPFm.mnulvwClearAllClick(Sender: TObject);
begin
if lstVwScan.Selected<>nil then
lstVwScan.Items.Clear;
end;

procedure TScanIPFm.sBtnStartScanHostClick(Sender: TObject);
begin
if RadioGroupHost.ItemIndex=0 then
SingleHostScan
else
MultiHostScan;
end;

procedure TScanIPFm.mnulvwSelectAllClick(Sender: TObject);
var
i : integer;
begin
For i:=0 to lstVwScan.Items.Count-1 do
lstVwScan.Items.Checked:=True;
end;

procedure TScanIPFm.mnulvwCancelAllClick(Sender: TObject);
var
i : integer;
begin
For i:=0 to lstVwScan.Items.Count-1 do
lstVwScan.Items.Checked:=False;
end;


procedure TScanIPFm.mnutvwDeleteClick(Sender: TObject);
begin
if tvwScan.Selected<>nil then
tvwScan.Selected.Delete;
end;

procedure TScanIPFm.mnutvwDelAllClick(Sender: TObject);
begin
tvwScan.Items.Clear;
end;

procedure TScanIPFm.SpinEditMaxThreadChange(Sender: TObject);
begin
MultiPingCount:=SpinEditMaxThread.Value;
MultiScanCount:=SpinEditMaxThread.Value;
end;

end.
 
object ScanIPFm: TScanIPFm
Left = 253
Top = 106
AlphaBlendValue = 180
BorderIcons = [biSystemMenu, biMinimize]
BorderStyle = bsSingle
Caption = #32593#32476#25195#25551#20998#26512
ClientHeight = 491
ClientWidth = 693
Color = clBtnFace
Font.Charset = GB2312_CHARSET
Font.Color = clWindowText
Font.Height = -12
Font.Name = #23435#20307
Font.Style = []
OldCreateOrder = False
Position = poScreenCenter
OnCreate = FormCreate
OnDestroy = FormDestroy
OnShow = FormShow
PixelsPerInch = 96
TextHeight = 12
object Panel2: TPanel
Left = 0
Top = 0
Width = 214
Height = 491
Align = alLeft
BevelOuter = bvNone
BorderWidth = 2
TabOrder = 0
object GroupBox1: TGroupBox
Left = 2
Top = 307
Width = 210
Height = 182
Align = alClient
Caption = #29305#23450#20027#26426#31471#21475#20998#26512
TabOrder = 0
object Label4: TLabel
Left = 16
Top = 26
Width = 60
Height = 12
Caption = #36755#20837#22320#22336'->'
end
object Label5: TLabel
Left = 19
Top = 100
Width = 36
Height = 12
Caption = #31471#21475#20174
end
object Label6: TLabel
Left = 111
Top = 100
Width = 12
Height = 12
Caption = #21040
end
object Gauge1: TGauge
Left = 17
Top = 125
Width = 154
Height = 17
BackColor = cl3DLight
Color = 33023
ForeColor = clPurple
ParentColor = False
Progress = 0
end
object sBtnStartScanHost: TSpeedButton
Left = 172
Top = 95
Width = 20
Height = 22
GroupIndex = 2
Flat = True
Glyph.Data = {
76010000424D7601000000000000760000002800000020000000100000000100
04000000000000010000130B0000130B00001000000000000000000000000000
800000800000008080008000000080008000808000007F7F7F00BFBFBF000000
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00333333333333
33333333333333333333EEEEEEEEEEEEEEE333FFFFFFFFFFFFF3E00000000000
00E337777777777777F3E0F77777777770E337F33333333337F3E0F333333333
70E337F3333F333337F3E0F33303333370E337F3337FF33337F3E0F333003333
70E337F33377FF3337F3E0F33300033370E337F333777FF337F3E0F333000033
70E337F33377773337F3E0F33300033370E337F33377733337F3E0F333003333
70E337F33377333337F3E0F33303333370E337F33373333337F3E0F333333333
70E337F33333333337F3E0FFFFFFFFFFF0E337FFFFFFFFFFF7F3E00000000000
00E33777777777777733EEEEEEEEEEEEEEE33333333333333333}
NumGlyphs = 2
OnClick = sBtnStartScanHostClick
end
object sBtnStopScanHost: TSpeedButton
Left = 172
Top = 121
Width = 20
Height = 22
GroupIndex = 2
Down = True
Flat = True
Glyph.Data = {
76010000424D7601000000000000760000002800000020000000100000000100
04000000000000010000130B0000130B00001000000000000000000000000000
800000800000008080008000000080008000808000007F7F7F00BFBFBF000000
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00333333333333
33333333333333333333EEEEEEEEEEEEEEE333FFFFFFFFFFFFF3E00000000000
00E337777777777777F3E0F77777777770E337F33333333337F3E0F333333333
70E337F33333333337F3E0F33333333370E337F333FF3FF337F3E0F330030033
70E337F3377F77F337F3E0F33003003370E337F3377F77F337F3E0F330030033
70E337F3377F77F337F3E0F33003003370E337F3377F77F337F3E0F330030033
70E337F33773773337F3E0F33333333370E337F33333333337F3E0F333333333
70E337F33333333337F3E0FFFFFFFFFFF0E337FFFFFFFFFFF7F3E00000000000
00E33777777777777733EEEEEEEEEEEEEEE33333333333333333}
NumGlyphs = 2
end
object Gauge5: TGauge
Left = 17
Top = 149
Width = 177
Height = 19
BackColor = cl3DLight
Color = 33023
ForeColor = 33023
ParentColor = False
Progress = 0
ShowText = False
end
object RadioGroupHost: TRadioGroup
Left = 17
Top = 48
Width = 175
Height = 41
Columns = 2
ItemIndex = 0
Items.Strings = (
#25353#36755#20837#22320#22336
#25353#22320#22336#21015#34920)
TabOrder = 0
OnClick = RadioGroupHostClick
end
object edtHost: TEdit
Left = 80
Top = 23
Width = 114
Height = 20
TabOrder = 1
Text = 'www.lanseal.com'
end
object edtPortFrom: TEdit
Left = 60
Top = 95
Width = 44
Height = 20
TabOrder = 2
Text = '1'
end
object edtPortTo: TEdit
Left = 125
Top = 95
Width = 45
Height = 20
TabOrder = 3
Text = '65535'
end
end
object GroupBox2: TGroupBox
Left = 2
Top = 2
Width = 210
Height = 255
Align = alTop
Caption = #32593#32476#36830#32493#21306#38388#25195#25551
TabOrder = 1
object sBtnStratScanIP: TSpeedButton
Left = 178
Top = 143
Width = 20
Height = 22
GroupIndex = 2
Flat = True
Glyph.Data = {
76010000424D7601000000000000760000002800000020000000100000000100
04000000000000010000130B0000130B00001000000000000000000000000000
800000800000008080008000000080008000808000007F7F7F00BFBFBF000000
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00333333333333
33333333333333333333EEEEEEEEEEEEEEE333FFFFFFFFFFFFF3E00000000000
00E337777777777777F3E0F77777777770E337F33333333337F3E0F333333333
70E337F3333F333337F3E0F33303333370E337F3337FF33337F3E0F333003333
70E337F33377FF3337F3E0F33300033370E337F333777FF337F3E0F333000033
70E337F33377773337F3E0F33300033370E337F33377733337F3E0F333003333
70E337F33377333337F3E0F33303333370E337F33373333337F3E0F333333333
70E337F33333333337F3E0FFFFFFFFFFF0E337FFFFFFFFFFF7F3E00000000000
00E33777777777777733EEEEEEEEEEEEEEE33333333333333333}
NumGlyphs = 2
OnClick = sBtnStratScanIPClick
end
object sBtnStopScanIP: TSpeedButton
Left = 178
Top = 191
Width = 20
Height = 22
GroupIndex = 2
Flat = True
Glyph.Data = {
76010000424D7601000000000000760000002800000020000000100000000100
04000000000000010000130B0000130B00001000000000000000000000000000
800000800000008080008000000080008000808000007F7F7F00BFBFBF000000
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00333333333333
33333333333333333333EEEEEEEEEEEEEEE333FFFFFFFFFFFFF3E00000000000
00E337777777777777F3E0F77777777770E337F33333333337F3E0F333333333
70E337F33333333337F3E0F33333333370E337F333FF3FF337F3E0F330030033
70E337F3377F77F337F3E0F33003003370E337F3377F77F337F3E0F330030033
70E337F3377F77F337F3E0F33003003370E337F3377F77F337F3E0F330030033
70E337F33773773337F3E0F33333333370E337F33333333337F3E0F333333333
70E337F33333333337F3E0FFFFFFFFFFF0E337FFFFFFFFFFF7F3E00000000000
00E33777777777777733EEEEEEEEEEEEEEE33333333333333333}
NumGlyphs = 2
OnClick = sBtnStopScanIPClick
end
object Gauge2: TGauge
Left = 14
Top = 227
Width = 185
Height = 17
BackColor = cl3DLight
ForeColor = clPurple
Progress = 0
end
object Gauge3: TGauge
Left = 19
Top = 22
Width = 52
Height = 52
BackColor = clGray
BorderStyle = bsNone
ForeColor = clGreen
Kind = gkPie
Progress = 18
ShowText = False
end
object Label3: TLabel
Left = 111
Top = 94
Width = 34
Height = 13
AutoSize = False
Caption = #31471#21475#65306
Font.Charset = DEFAULT_CHARSET
Font.Color = clBlack
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
ParentFont = False
end
object Gauge4: TGauge
Left = 86
Top = 23
Width = 11
Height = 52
Hint = #32447#31243#32531#20914#27744
ForeColor = 33023
Kind = gkVerticalBar
ParentShowHint = False
Progress = 0
ShowHint = True
ShowText = False
end
object Label9: TLabel
Left = 11
Top = 96
Width = 48
Height = 12
Caption = #32447#31243#25968#65306
end
object Label1: TLabel
Left = 14
Top = 124
Width = 60
Height = 12
Caption = #36215#22987#22320#22336#65306
end
object Label2: TLabel
Left = 14
Top = 172
Width = 60
Height = 12
Caption = #32456#27490#22320#22336#65306
end
object RadioGroupIP: TRadioGroup
Left = 115
Top = 18
Width = 73
Height = 57
ItemIndex = 0
Items.Strings = (
'Ping'
#25353#31471#21475)
TabOrder = 0
OnClick = RadioGroupIPClick
end
object edtPort: TEdit
Left = 147
Top = 90
Width = 54
Height = 21
Color = clNavy
Enabled = False
Font.Charset = DEFAULT_CHARSET
Font.Color = clAqua
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
ParentFont = False
TabOrder = 1
Text = '51888'
end
object SpinEditMaxThread: TSpinEdit
Left = 61
Top = 91
Width = 44
Height = 21
Increment = 5
MaxValue = 1024
MinValue = 0
TabOrder = 2
Value = 100
OnChange = SpinEditMaxThreadChange
end
object IPEditFrom: TIPEdit
Left = 13
Top = 141
Width = 162
Height = 25
Field0 = 0
Field1 = 0
Field2 = 0
Field3 = 0
IP = 0
TabOrder = 3
TabStop = True
end
object IPEditTo: TIPEdit
Left = 13
Top = 189
Width = 162
Height = 25
Field0 = 0
Field1 = 0
Field2 = 0
Field3 = 0
IP = 0
TabOrder = 4
TabStop = True
end
end
object Panel6: TPanel
Left = 2
Top = 257
Width = 210
Height = 50
Align = alTop
BevelOuter = bvNone
Color = cl3DLight
TabOrder = 2
object Label12: TLabel
Left = 10
Top = 20
Width = 60
Height = 12
Caption = #26412#26426#22320#22336#65306
end
object ComboBoxIP: TComboBox
Left = 71
Top = 16
Width = 123
Height = 21
Color = 8404992
Font.Charset = DEFAULT_CHARSET
Font.Color = clAqua
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
ItemHeight = 13
ParentFont = False
TabOrder = 0
end
end
end
object Panel3: TPanel
Left = 214
Top = 0
Width = 479
Height = 491
Align = alClient
BevelOuter = bvNone
BorderWidth = 2
BorderStyle = bsSingle
TabOrder = 1
object Splitter: TSplitter
Left = 272
Top = 2
Width = 3
Height = 483
Cursor = crHSplit
end
object Panel7: TPanel
Left = 275
Top = 2
Width = 198
Height = 483
Align = alClient
BevelOuter = bvNone
TabOrder = 0
object tvwScan: TTreeView
Left = 0
Top = 23
Width = 198
Height = 460
Align = alClient
BevelOuter = bvRaised
BevelKind = bkFlat
BevelWidth = 3
BorderStyle = bsNone
Color = 15269887
Images = ImageList1
Indent = 35
PopupMenu = PopupMenu2
TabOrder = 0
end
object Panel8: TPanel
Left = 0
Top = 0
Width = 198
Height = 23
Align = alTop
BevelOuter = bvNone
Caption = #31471#21475#25195#25551#32467#26524
Color = cl3DLight
TabOrder = 1
end
end
object Panel9: TPanel
Left = 2
Top = 2
Width = 270
Height = 483
Align = alLeft
BevelOuter = bvLowered
TabOrder = 1
object lstVwScan: TListView
Left = 1
Top = 24
Width = 268
Height = 458
Align = alClient
BevelInner = bvNone
BevelOuter = bvNone
BevelKind = bkTile
BevelWidth = 3
Checkboxes = True
Color = 15269887
Columns = <
item
Caption = #25195#25551#21040#30340'IP'#22320#22336
Width = 120
end
item
Alignment = taRightJustify
Caption = #25104#21151#29575
end
item
Alignment = taRightJustify
Caption = #32791#26102
end
item
Alignment = taRightJustify
Caption = 'TTL'
end
item
Caption = #36820#22238#23383#33410#25968
end
item
Caption = #31471#21475#21495
end>
ColumnClick = False
HideSelection = False
ReadOnly = True
RowSelect = True
ParentShowHint = False
PopupMenu = PopupMenu1
ShowHint = True
SmallImages = ImageList1
TabOrder = 0
ViewStyle = vsReport
OnClick = lstVwScanClick
OnMouseMove = lstVwScanMouseMove
end
object plScanStatus: TPanel
Left = 1
Top = 1
Width = 268
Height = 23
Align = alTop
Alignment = taLeftJustify
BevelOuter = bvNone
Caption = #25195#25551#29366#24577
Color = cl3DLight
Font.Charset = DEFAULT_CHARSET
Font.Color = clBlack
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
ParentFont = False
TabOrder = 1
end
end
end
object Timer1: TTimer
Enabled = False
Interval = 100
OnTimer = Timer1Timer
Left = 344
Top = 216
end
object IdIPWatch1: TIdIPWatch
Active = True
HistoryFilename = 'iphist.dat'
Left = 272
Top = 216
end
object PopupMenu1: TPopupMenu
Left = 304
Top = 216
object mnulvwSelectAll: TMenuItem
Caption = #20840#37096#36873#21462
ShortCut = 16449
OnClick = mnulvwSelectAllClick
end
object mnulvwCancelAll: TMenuItem
Caption = #21462#28040#20840#37096#36873#21462
ShortCut = 114
OnClick = mnulvwCancelAllClick
end
object mnulvwDeleteItem: TMenuItem
Caption = #21024#38500#35813#39033
ShortCut = 46
OnClick = mnulvwDeleteItemClick
end
object mnulvwClearAll: TMenuItem
Caption = #28165#38500#25152#26377#32467#26524
ShortCut = 49219
OnClick = mnulvwClearAllClick
end
end
object PopupMenu2: TPopupMenu
Left = 384
Top = 216
object mnutvwDelete: TMenuItem
Caption = #21024#38500
ShortCut = 46
OnClick = mnutvwDeleteClick
end
object mnutvwDelAll: TMenuItem
Caption = #20840#37096#21024#38500
ShortCut = 16452
OnClick = mnutvwDelAllClick
end
end
object ImageList1: TImageList
Left = 424
Top = 216
Bitmap = {
494C010102000400040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
0000000000003600000028000000400000001000000001002000000000000010
0000000000000000000000000000000000000000000000000000316363002121
2100212121002121210021212100212121002121210021212100212121002121
2100212121002121210021212100212121000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000003131009C6363002121
2100C6D6EF00FFCECE00C6D6EF00FFCECE00CEFFFF00FFCECE00CEFFFF00FFCE
CE00C6D6EF00FFCECE00C6D6EF00212121000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000003131009C6363009C6363003939
3900FFCECE00C6D6EF00FFCECE00D6E7E700D6E7E700D6E7E700FFCECE00CE9C
9C000084840000848400FFCECE00212121000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000003131009C63630000848400C6C6
C600C6D6EF00FFCECE00C6D6EF00EFEFEF00FFCECE00CEFFFF0094ADAD00D6E7
E70094ADAD00FFCECE0094ADAD00636363000000000000000000000000000000
000000000000848CFF004A4AFF001818FF001818FF00424AFF00848CFF000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000031310039393900C6D6EF00CE9C
CE006363630031316300393939003163630094ADAD0094ADAD00313163001010
1000393939006363630000000000000000000000000000000000000000000000
00006B73FF000000FF000000FF000000FF000000FF000000FF000000FF00636B
FF00000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000003131009C9CCE00080808000000
0000000000000000000000000000000000000000000000000000000000000000
000008080800101010002929290000000000000000000000000000000000848C
FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000
FF00848CFF000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000003131000031310094AD
AD00FFCECE00DEDEDE00CEFFFF00CEFFFF00CEFFFF00CEFFFF00CEFFFF00CEFF
FF00DEDEDE00CE9C9C0010101000000000000000000000000000000000004A4A
FF000000FF000000FF00008CFF0000EFFF0000EFFF00008CFF000000FF000000
FF00424AFF000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000031310000313100B5B5B500CEFF
FF00FFCE6300CE633100CE633100CE633100CE633100CE633100CE633100CE63
3100CE633100000000002929290000000000000000000000000000FFFF0000FF
FF0000FFFF0000FFFF0000C6FF0000FFFF0000FFFF0000C6FF0000FFFF0000FF
FF0000FFFF0000FFFF0000FFFF00000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000039393900B5B5B500FFCECE000000
0000FF9C3100FFCE3100FFCE3100FFCE3100FFCE3100FFCE3100FF9C3100FF9C
0000FF630000000000004242420000000000000000000000000000FFFF0000FF
FF0000FFFF0000FFFF0000C6FF0000FFFF0000FFFF0000C6FF0000FFFF0000FF
FF0000FFFF0000FFFF0000FFFF00000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000039393900B5B5B500B5B5B5000000
0000CE9C6300FFCE6300FFFF9C00FFFF6300FFFF6300FFCE6300FFCE6300FF9C
0000CE6331000000000042424200000000000000000000000000000000004A4A
FF000000FF000000FF000052FF0000C6FF0000C6FF000052FF000000FF000000
FF004A4AFF000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000039393900FFCECE00B5B5B500F7FF
FF00CE9C6300FFFF6300FFFF9C00FFFF9C00FFFF6300FFFF6300FFCE3100FFCE
3100CE633100FFFFCE0042424200000000000000000000000000000000008C94
FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000
FF00848CFF000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000039393900B5B5B500FFCECE00F7FF
FF00CE636300FFFF9C00FFFF9C00FFFF9C00FFFF6300FFFF9C00FFCE3100FFCE
3100CE633100FFFF9C0042424200000000000000000000000000000000000000
00006B73FF000000FF000000FF000000FF000000FF000000FF000000FF006B73
FF00000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000039393900FFCE9C00FFCECE00F7F7
F700CE636300FFFF6300FFFF9C00FFFF9C00FFFF9C00FFCE6300FFCE6300FF9C
3100FF630000FFFF630042424200000000000000000000000000000000000000
0000000000008C94FF004A4AFF001818FF001818FF004A4AFF00848CFF000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000039393900FFCECE00F7F7F700CEFF
FF00CE9C9C00CE63630031000000310000003100000031000000310000003100
000063310000FFEFCE004A4A4A00000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000039393900CEFFFF00000000000000
000000000000CEFFFF00CEFFFF00CEFFFF00CEFFFF00CEFFFF00F7FFFF00F7FF
FF0000000000FFCECE0042424200000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000084848400CE9C9C00CE9C
9C00CE9C9C00CE9C9C00CE9C9C00CE9C9C00CE9C9C00CE9C9C00CE9C9C00CE9C
9C00639C9C009C63630000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000424D3E000000000000003E000000
2800000040000000100000000100010000000000800000000000000000000000
000000000000000000000000FFFFFF00C000FFFF000000008000FFFF00000000
0000FFFF000000000000F81F000000000003F00F000000000001E00700000000
8001E007000000000005C001000000001005C001000000001005E00700000000
0001E007000000000001F00F000000000001F81F000000000001FFFF00000000
3809FFFF000000008003FFFF0000000000000000000000000000000000000000
000000000000}
end
end
 
后退
顶部