zapline 发表于 2010-3-8 12:44

编程小练习(8)

我们打开一个查询IP的网站,例如http://www.123cha.com/ip/
这时我们能得到我们的IP和一些IP相关的信息

题目:
编程实现获取访问这个网站返回的信息,以便于获取查询IP相关的信息

obaby 发表于 2010-3-8 14:18

本帖最后由 obaby 于 2010-3-9 09:35 编辑



unit ip;

interface

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

type
  TForm1 = class(TForm)
    mmo1: TMemo;
    Button1: TButton;
    edt1: TEdit;
    lbl1: TLabel;
    idhtp: TIdHTTP;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}


procedure TForm1.Button1Click(Sender: TObject);
var
   xml : OleVariant;
   r:string;
   p1,p2 : Integer;
   I:Integer;
begin
   xml := CreateOleObject('Microsoft.XMLHTTP');
   xml.Open('GET','http://www.123cha.com/ip/?q='+edt1.Text, False);
   xml.Send;
   r := xml.responseText;
   p1:=Pos('数据</font>',r);
   p2:=Pos('<li>[查询提供]',r);
   mmo1.lines.add(' 您查询的地址可能归属地是:') ;
   mmo1.lines.add(' ===========================') ;
   mmo1.Lines.add (Copy(r, p1+16, p2-p1-5));
   mmo1.Text:=StringReplace(mmo1.Text,'&nbsp;','',);
   mmo1.Text:=StringReplace(mmo1.Text,'</li>','',);
   mmo1.Text:=StringReplace(mmo1.Text,'<li>','',);
   mmo1.Text:=StringReplace(mmo1.Text,'<font color="blue">','',);
   mmo1.Text:=StringReplace(mmo1.Text,'</font>','',);
end;

补上编译后的exe。

dzeo 发表于 2010-3-8 14:46

VB6.0

比较笨的方法



Private Sub Form_Load()
WebBrowser1.Navigate "http://www.cz88.net/ip/viewip468.aspx"
Me.Caption = "你的IP"
End Sub
Private Sub WebBrowser1_DownloadComplete()'网页加载完成后激发
Print WebBrowser1.Document.body.outertext'显示当前网址的文字信息
End Sub

1zm 发表于 2010-3-8 15:30

我学学看

obaby 发表于 2010-3-8 15:48

最简单的方法就是加一个webbroser控件,然后载入指定的网址即可。

roxiel 发表于 2010-3-9 14:15

回复 1# zapline <html>
<div align="center">
<FORM name=ipform onsubmit="return checkIP();" action=http://www.ip138.com/ips.asp method=get
target=_blank>
<TR>
    <TD align=middle>
      <DIV align=center>
      <P>&nbsp;</P>
      <P>IP地址或者域名:<INPUT size=16 name=ip>
    <INPUT type=submit value=查询></P></DIV></TD></TR></FORM>
</div>
</html>

zapline 发表于 2010-3-9 15:44

回复zapline
roxiel 发表于 2010-3-9 14:15 http://www.52pojie.cn/images/common/back.gif


    目的不对啊是为了把BS模式改成CS模式
页: [1]
查看完整版本: 编程小练习(8)