网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > DELPHI > 正文
随时随刻知道自己的IP
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12
下载{$ArticleTitle}原创论文样式

作者:李淼  

  随着网络的普及,越来越多的人开始过起了网络生涯。网站让你目不暇接,可是有的网站却专门钻IE的空子,当你浏览了它的主页之后,注册表就会被禁止,还会修改你的其他设置,真是害人不浅。还有一招更毒的,你浏览它的主页后,它会下载一个拨号器在你的硬盘,拨号器会断开你当前的连接去拨别的号(想一想,拨一个长途国际电话,一小时多少钱?!),所以,我们这些拨号上网的用户需要一个能随时监测自己IP地址的软件,当IP发生改变时,它会自动的报警;同时,它还应该是透明的,这样即使运行时总在最前面,也不会影响别的窗体。

  废话不多说了,马上开工。首先打开Delphi新建一个工程,添加一个定时器Timer1、一个标签Label1、一个PopupMenu1,并且为PopupMenu1添加一个Exit菜单项。下面就是全部的源代码:

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Menus, StdCtrls, ExtCtrls, Winsock; //首先要添加winsock

type

TForm1 = class(TForm)

Timer1: TTimer;

Label1: TLabel;

PopupMenu1: TPopupMenu;

Exit: TMenuItem;

procedure FormCreate(Sender: TObject);

procedure Timer1Timer(Sender: TObject);

procedure Label1MouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

procedure Label1MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure ExitClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;


var

Form1: TForm1;

oldx,oldy: integer;//添加变量,用做移动窗体

oldIp: string;

implementation

{$R *.dfm}

//下面就是关键所在了

function LIP : string;

type

TaPInAddr = array [0..10] of PInAddr;

PaPInAddr = ^TaPInAddr;

var

phe : PHostEnt;

pptr : PaPInAddr;

Buffer : array [0..63] of char;

I : Integer;

GInitData : TWSADATA;

begin

WSAStartup($101, GInitData);

Result := '''';

GetHostName(Buffer, SizeOf(Buffer));

phe :=GetHostByName(buffer);

if phe = nil then Exit;

pptr := PaPInAddr(Phe^.h_addr_list);

I := 0;

while pptr^[I] <> nil do begin

result:=StrPas(inet_ntoa(pptr^[I]^));

Inc(I);

end;

WSACleanup;

end;


procedure TForm1.FormCreate(Sender: TObject);

begin

with Label1 do //定义属性

begin

Caption:='''';

Font.Charset:=ANSI_CHARSET;

Font.Name:=''Arial'';

Font.Size:=10;

Font.Color:=clRed;

Align:=alClient;

PopupMenu:=popupmenu1;

end;


Timer1.Interval:=1000;

Timer1.Enabled:=true;

Label1.Caption:=''IP:''+LIP; //赋值,把Ip赋值给label1

oldIp:=LIP;

BorderStyle:=bsNone;

Alphablend:=true; //呵呵,这个就是让窗口变透明的办法了

Alphablendvalue:=100;

FormStyle:=fsStayOnTop; //让窗体总在最前面

end;


procedure TForm1.Timer1Timer(Sender: TObject);

begin

Label1.Caption :=''IP:''+LIP;

if oldip <> LIP then

Showmessage(''IP地址已经改变,请检查!'');//提醒用户

end;


procedure TForm1.Label1MouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

begin

if ssleft in shift then //移动窗体Form1

begin

Form1.Left:=Form1.Left+x-oldx;

Form1.Top:=Form1.top+y-oldy;

end;

end;


procedure TForm1.Label1MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

oldx:=x;

oldy:=y;

end;


procedure TForm1.ExitClick(Sender: TObject);

begin

C
  • 下一篇资讯: Windows API函数使用技巧
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号