delphi 提取字符串 查询某个ip返回的地理位置想提取ip地理位置,并写入edit。
请查看此网页的源代码‘http://open.baidu.com/ipsearch/s?wd=202.108.22.5&tn=baiduip&owd=202.108.22.5’
我复制出部分htm源代码,
</tr>
</table>
<div id="op_ipmid_res1" class="op_ipmid_res"><span>您查询的IP:<b>202.108.22.5</b></span><span>来自:<b>北京市</b></span><span style="margin:20px;font-size:13px;color:#656565">IP数据提供:<a href="http://www.ip138.com/" target="_blank" onmousedown="return nc({'title':this.innerHTML,'url':this.href,'p1':2,'p2':1})">ip138</a></span>
</div>
<script type="text/javascript">
(function(){//////////////////////获取网页源代码
uses ComObj,
var
xml : OleVariant;
r:string;
begin
xml := CreateOleObject('Microsoft.XMLHTTP');
xml.Open('GET',' http://open.baidu.com/ipsearch/s?wd=202.108.22.5&tn=baiduip&owd=202.108.22.5', False);
xml.Send;
r := xml.responseText;
请查看此网页的源代码‘http://open.baidu.com/ipsearch/s?wd=202.108.22.5&tn=baiduip&owd=202.108.22.5’
我复制出部分htm源代码,
</tr>
</table>
<div id="op_ipmid_res1" class="op_ipmid_res"><span>您查询的IP:<b>202.108.22.5</b></span><span>来自:<b>北京市</b></span><span style="margin:20px;font-size:13px;color:#656565">IP数据提供:<a href="http://www.ip138.com/" target="_blank" onmousedown="return nc({'title':this.innerHTML,'url':this.href,'p1':2,'p2':1})">ip138</a></span>
</div>
<script type="text/javascript">
(function(){//////////////////////获取网页源代码
uses ComObj,
var
xml : OleVariant;
r:string;
begin
xml := CreateOleObject('Microsoft.XMLHTTP');
xml.Open('GET',' http://open.baidu.com/ipsearch/s?wd=202.108.22.5&tn=baiduip&owd=202.108.22.5', False);
xml.Send;
r := xml.responseText;
解决方案 »
- 100元购买delphi socket服务器代码,要求支持500个客户端,30个并发连接
- 视频叠加的完美奉献,勘比目前所有OSD效果
- 将程序注册为系统服务的问题?知道的进
- **热烈祝贺我的帖子《Dephi中资源文件使用详解》收入<Delphi编程经验总结>***
- 类
- 想写个类,用来描述并保存一个Oracle数据库的表(包括表结构和所有纪录的字段值),请问对它的实现有何高见?
- DynamicSkinForm VCL v. 4.8 for D6是什么意思(不要笑话我)
- vcl 组件开发高级技术
- 请问wdl格式的文件用什么读书器可以阅读
- 如何控制AcroPDF1
- 急求帮助,使用Indy编写通信程序,服务器端使用ReadBuffer读出的数据不正确
- 窗體創建過程中向SERVER發送封包。SERVER收不到
还是通过 Web Service 接口较好
var
HTMLStr: String;
n: Integer;
p, p1, p2: PAnsiChar;
begin
Result := ''; //前面是取得网页内容的部分,你已经实现了 //把活得的网页内容,以字符串的形式保存到HTMLStr中 p := PAnsiChar(HTMLStr);
p1 := StrPos(p, '><span>来自:<b>');
Inc(p1, Length('><span>来自:<b>'));
if p1 <> nil then
begin
p2 := StrPos(p1, '</b></span>');
if p2 <> nil then
Result := Copy(p1, 1, p2 - p1);
end;
end;这个函数够你用了
var
XMLStr: String;
n: Integer;
p, p1, p2: PAnsiChar;
begin
Result := ''; //前面是取得网页内容的部分,你已经实现了
XMLStr := 'div id="op_ipmid_res1" class="op_ipmid_res"><span>您查询的IP:<b>202.108.22.5</b></span><span>来自:<b>北京市</b></span><span style="margin:20px;font-size:13px;color:#656565">IP数据提供:<a href="http://www.ip138.com/" target="_blank" ';
p := PAnsiChar(XMLStr); //定位你要查找的IP地址,这是为了过滤网页中可能存在多个后面查询的 <span>来自:<b> 字符串而做的定位操作
p1 := StrPos(p, PAnsiChar('<span>您查询的IP:<b>' + IP + '</b></span>')); if p1 = nil then Exit; Inc(p1, Length('<span>您查询的IP:<b>' + IP + '</b></span>')); if P1 = nil then Exit; p1 := StrPos(p, '<span>来自:<b>'); if p1 = nil then Exit; Inc(p1, Length('<span>来自:<b>')); //扫描通给定IP地址最近的那个实际地址 if p1 = nil then Exit; p2 := StrPos(p1, '</b></span>'); //扫描实际地址的结束字符串 if p2 = nil then Exit; Result := Copy(p1, 1, p2 - p1); //截取实际地址内容end;