⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 getoutsideip.pas

📁 Delphi 获取互联网IP地址
💻 PAS
字号:
unit GetOutSideIP;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
  IdHTTP, StdCtrls,FileIni, ExtCtrls;

type
  Tfrm_getIP = class(TForm)
    Edit_Url: TEdit;
    Label1: TLabel;
    btn_GetIP: TButton;
    http: TIdHTTP;
    Edit_CurIP: TEdit;
    Edit_OldIP: TEdit;
    Label2: TLabel;
    Label3: TLabel;
    Memo_Notice: TMemo;
    btn_SetIP: TButton;
    Label4: TLabel;
    Edit_Timer: TEdit;
    Timer1: TTimer;
    CB_Timer: TCheckBox;
    procedure btn_GetIPClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure btn_SetIPClick(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure CB_TimerClick(Sender: TObject);
  private
    { Private declarations }
  public
     FileIni:TFileIni;
     G_Timer :Integer;
  end;

var
  frm_getIP: Tfrm_getIP;

implementation

{$R *.dfm}

procedure Tfrm_getIP.btn_GetIPClick(Sender: TObject);
var
    s, s1: TStringStream;
    Inicial,Final: Integer;
    ss:String;
begin  
    s := TStringStream.Create('');
    s1 := TStringStream.Create('');
    http.Request.ContentType := 'application/x-www-form-urlencoded';
    try
      http.Post(Edit_Url.Text, s, s1)
      except
      http.Get(http.Response.Location, s1);
    end;
   // ss:=s1.ReadString;
    Inicial := 1;//Pos('ipbegin:',s1.DataString)+8;    //获得文本框开头文本
    Final   := s1.Size+1;// Pos('ipend',s1.DataString);        //获得文本框结尾
    ss := Copy(s1.DataString,Inicial,Final-Inicial);
    Edit_CurIP.Text := Utf8Toansi(ss);
    if Edit_CurIP.Text = Edit_OldIP.Text  then
    begin
      Memo_Notice.Visible := false;
    end else begin
      Memo_Notice.Visible := true;
      //self.Show;
    end;
end;

procedure Tfrm_getIP.FormCreate(Sender: TObject);
begin
   FileIni := TFileIni.Create(ExtractFilePath(Application.ExeName) + 'Config.ini');
   Edit_Url.Text := FileIni.web_url;
   Edit_OldIP.Text := FileIni.web_oldip;
   Edit_Timer.Text := IntToStr(FileIni.web_timer);
   CB_Timer.Checked := FileIni.web_AutoGet;
   Timer1.Enabled := FileIni.web_AutoGet;
end;

procedure Tfrm_getIP.btn_SetIPClick(Sender: TObject);
begin
  FileIni.web_url := Edit_Url.Text;
  FileIni.web_oldip := Edit_OldIP.Text;
  FileIni.web_timer := StrToInt(Edit_Timer.Text);
  FileIni.web_AutoGet := CB_Timer.Checked;
  FileIni.WriteConfig;
end;

procedure Tfrm_getIP.Timer1Timer(Sender: TObject);
begin
   if g_Timer < FileIni.web_timer then
   begin
      g_Timer := g_timer + 1;
   end else
   begin
      g_Timer := 0;
      btn_GetIP.Click;
   end;
end;

procedure Tfrm_getIP.CB_TimerClick(Sender: TObject);
begin
    Timer1.Enabled := CB_Timer.Checked;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -