
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
	<head><meta forua="true" http-equiv="Cache-Control" content="max-age=0" /></head><card id="MainCard" title="&#x6B22;&#x8FCE;&#x5149;&#x4E34;"><p><a href="wap.asp">&#x6728;&#x5B50;&#x5C4B;</a><br/>&nbsp;</p><p><b>&#x6807;&#x9898;&#x3A;</b> &#x56;&#x42;&#x2E;&#x4E;&#x45;&#x54;&#x8BFB;&#x53D6;&#x7EAF;&#x771F;&#x7248;&#x51;&#x51;&#x20;&#x49;&#x50;&#x6570;&#x636E;&#x5E93;&#x793A;&#x4F8B;</p><p><b>&#x4F5C;&#x8005;&#x3A;</b> &#x64;&#x6E;&#x61;&#x77;&#x6F;</p><p><b>&#x65E5;&#x671F;&#x3A;</b> &#x32;&#x30;&#x30;&#x38;&#x2D;&#x30;&#x36;&#x2D;&#x31;&#x30;&#x20;&#x30;&#x31;&#x3A;&#x30;&#x37;&#x20;&#x50;&#x4D;</p><p><b>&#x5206;&#x7C7B;&#x3A;</b> <a href="wap.asp?do=showLog&amp;cateID=5">&#x57;&#x65;&#x62;&#x7F16;&#x7A0B;</a></p><p><b>&#x5185;&#x5BB9;&#x3A;</b> &#x590D;&#x5236;&#x5185;&#x5BB9;&#x5230;&#x526A;&#x8D34;&#x677F; &#x7A0B;&#x5E8F;&#x4EE3;&#x7801;Imports Microsoft.VisualBasic<br/>Imports System.IO<br/>&#39;&#x8F85;&#x52A9;&#x7C7B;&#xFF0C;&#x7528;&#x4E8E;&#x4FDD;&#x5B58;IP&#x7D22;&#x5F15;&#x4FE1;&#x606F;<br/>Public Class CZ_INDEX_INFO<br/>&nbsp;&nbsp;&nbsp;&nbsp;Public IpSet As UInt32<br/>&nbsp;&nbsp;&nbsp;&nbsp;Public IpEnd As UInt32<br/>&nbsp;&nbsp;&nbsp;&nbsp;Public Offset As UInt32<br/>&nbsp;&nbsp;&nbsp;&nbsp;Sub New()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IpSet = 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IpEnd = 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Offset = 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;End Sub<br/>End Class<br/>&#39;&#x8BFB;&#x53D6;&#x7EAF;&#x771F;IP&#x6570;&#x636E;&#x5E93;&#x7C7B;<br/>Public Class PHCZIP<br/>&nbsp;&nbsp;&nbsp;&nbsp;Protected bFilePathInitialized As Boolean<br/>&nbsp;&nbsp;&nbsp;&nbsp;Protected FilePath As String<br/>&nbsp;&nbsp;&nbsp;&nbsp;Protected FileStrm As FileStream<br/>&nbsp;&nbsp;&nbsp;&nbsp;Protected Index_Set As UInt32<br/>&nbsp;&nbsp;&nbsp;&nbsp;Protected Index_End As UInt32<br/>&nbsp;&nbsp;&nbsp;&nbsp;Protected Index_Count As UInt32<br/>&nbsp;&nbsp;&nbsp;&nbsp;Protected Search_Index_Set As UInt32<br/>&nbsp;&nbsp;&nbsp;&nbsp;Protected Search_Index_End As UInt32<br/>&nbsp;&nbsp;&nbsp;&nbsp;Protected Search_Set As CZ_INDEX_INFO<br/>&nbsp;&nbsp;&nbsp;&nbsp;Protected Search_Mid As CZ_INDEX_INFO<br/>&nbsp;&nbsp;&nbsp;&nbsp;Protected Search_End As CZ_INDEX_INFO<br/>&nbsp;&nbsp;&nbsp;&nbsp;Public Sub New()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bFilePathInitialized = False<br/>&nbsp;&nbsp;&nbsp;&nbsp;End Sub<br/>&nbsp;&nbsp;&nbsp;&nbsp;Public Sub New(ByVal dbFilePath As String)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bFilePathInitialized = False<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SetDbFilePath(dbFilePath)<br/>&nbsp;&nbsp;&nbsp;&nbsp;End Sub<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x4F7F;&#x7528;&#x4E8C;&#x5206;&#x6CD5;&#x67E5;&#x627E;&#x7D22;&#x5F15;&#x533A;&#xFF0C;&#x521D;&#x59CB;&#x5316;&#x67E5;&#x627E;&#x533A;&#x95F4;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Protected Sub Initialize()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Search_Index_Set = 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Search_Index_End = Index_Count - 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;End Sub<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x5173;&#x95ED;&#x6587;&#x4EF6;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Public Sub Dispose()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If (bFilePathInitialized) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bFilePathInitialized = False<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileStrm.Close()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileStrm.Dispose()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;End Sub<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x8BBE;&#x7F6E;&#x7EAF;&#x771F;IP&#x6570;&#x636E;&#x5E93;&#x7684;&#x6587;&#x4EF6;&#x8DEF;&#x5F84;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Public Function SetDbFilePath(ByVal dbFilePath As String) As Boolean<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If (dbFilePath = &#34;&#34;) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return False<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;Try<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x6253;&#x5F00;&#x6570;&#x636E;&#x6587;&#x4EF6;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileStrm = New FileStream(dbFilePath, FileMode.Open, FileAccess.Read)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;Catch<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;Return False<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;End Try<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x68C0;&#x67E5;&#x6587;&#x4EF6;&#x957F;&#x5EA6;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If (FileStrm.Length &lt; 8) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileStrm.Close()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileStrm.Dispose()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return False<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x5F97;&#x5230;&#x7B2C;&#x4E00;&#x6761;&#x7D22;&#x5F15;&#x7684;&#x7EDD;&#x5BF9;&#x504F;&#x79FB;&#x548C;&#x6700;&#x540E;&#x4E00;&#x6761;&#x7D22;&#x5F15;&#x7684;&#x7EDD;&#x5BF9;&#x504F;&#x79FB;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileStrm.Seek(0, SeekOrigin.Begin)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Index_Set = GetUInt32()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Index_End = GetUInt32()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x5F97;&#x5230;&#x603B;&#x7D22;&#x5F15;&#x6761;&#x6570;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Index_Count = (Index_End - Index_Set) / 7 + 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bFilePathInitialized = True<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return True<br/>&nbsp;&nbsp;&nbsp;&nbsp;End Function<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x4E3B;&#x63A5;&#x53E3;&#x51FD;&#x6570;&#xFF0C;&#x6839;&#x636E;&#x4F20;&#x5165;&#x7684;IP&#x8FD4;&#x56DE;&#x8BE5;IP&#x7684;&#x5730;&#x5740;&#x4FE1;&#x606F;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Public Function GetAddressWithIP(ByVal IPvalue As String) As String<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Not bFilePathInitialized Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return &#34;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Initialize()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x5C06;IP&#x8F6C;&#x5316;&#x4E3A;&#x6570;&#x5B57;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim ip As UInt32 = IPToUInt32(IPvalue)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;While (True)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x9996;&#x5148;&#x521D;&#x59CB;&#x5316;&#x672C;&#x8F6E;&#x67E5;&#x627E;&#x7684;&#x533A;&#x95F4;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x533A;&#x95F4;&#x5934;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Search_Set = IndexInfoAtPos(Search_Index_Set)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x533A;&#x95F4;&#x5C3E;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Search_End = IndexInfoAtPos(Search_Index_End)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x5224;&#x65AD;IP&#x662F;&#x5426;&#x5728;&#x533A;&#x95F4;&#x5934;&#x5185;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If (ip &gt;= Search_Set.IpSet And ip &lt;= Search_Set.IpEnd) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return ReadAddressInfoAtOffset(Search_Set.Offset)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x5224;&#x65AD;IP&#x662F;&#x5426;&#x5728;&#x533A;&#x95F4;&#x5C3E;&#x5185;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If (ip &gt;= Search_End.IpSet And ip &lt;= Search_End.IpEnd) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return ReadAddressInfoAtOffset(Search_End.Offset)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x8BA1;&#x7B97;&#x51FA;&#x533A;&#x95F4;&#x4E2D;&#x70B9;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Search_Mid = IndexInfoAtPos((Search_Index_End + Search_Index_Set) / 2)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x5224;&#x65AD;IP&#x662F;&#x5426;&#x5728;&#x4E2D;&#x70B9;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If (ip &gt;= Search_Mid.IpSet And ip &lt;= Search_Mid.IpEnd) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return ReadAddressInfoAtOffset(Search_Mid.Offset)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x672C;&#x8F6E;&#x6CA1;&#x6709;&#x627E;&#x5230;&#xFF0C;&#x51C6;&#x5907;&#x4E0B;&#x4E00;&#x8F6E;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If (ip &lt; Search_Mid.IpSet) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;IP&#x6BD4;&#x533A;&#x95F4;&#x4E2D;&#x70B9;&#x8981;&#x5C0F;&#xFF0C;&#x5C06;&#x533A;&#x95F4;&#x5C3E;&#x8BBE;&#x4E3A;&#x73B0;&#x5728;&#x7684;&#x4E2D;&#x70B9;&#xFF0C;&#x5C06;&#x533A;&#x95F4;&#x7F29;&#x5C0F;1&#x500D;&#x3002;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Search_Index_End = (Search_Index_End + Search_Index_Set) / 2<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;IP&#x6BD4;&#x533A;&#x95F4;&#x4E2D;&#x70B9;&#x8981;&#x5927;&#xFF0C;&#x5C06;&#x533A;&#x95F4;&#x5934;&#x8BBE;&#x4E3A;&#x73B0;&#x5728;&#x7684;&#x4E2D;&#x70B9;&#xFF0C;&#x5C06;&#x533A;&#x95F4;&#x7F29;&#x5C0F;1&#x500D;&#x3002;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Search_Index_Set = (Search_Index_End + Search_Index_Set) / 2<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End While<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return &#34;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;End Function<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x8BFB;&#x53D6;&#x6307;&#x5B9A;&#x6587;&#x4EF6;&#x504F;&#x79FB;&#x4F4D;&#x7F6E;&#x7684;&#x56FD;&#x5BB6;&#x548C;&#x5730;&#x533A;&#x4FE1;&#x606F;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Protected Function ReadAddressInfoAtOffset(ByVal Offset As UInt32) As String<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim country As String = &#34;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim area As String = &#34;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim country_Offset As UInt32 = 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim Tag As Byte = 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x8DF3;&#x8FC7;4&#x5B57;&#x8282;&#xFF0C;&#x56E0;&#x8FD9;4&#x4E2A;&#x5B57;&#x8282;&#x662F;&#x8BE5;&#x7D22;&#x5F15;&#x7684;IP&#x533A;&#x95F4;&#x4E0A;&#x9650;&#x3002;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileStrm.Seek(Offset + 4, SeekOrigin.Begin)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x8BFB;&#x53D6;&#x4E00;&#x4E2A;&#x5B57;&#x8282;&#xFF0C;&#x5F97;&#x5230;&#x63CF;&#x8FF0;&#x56FD;&#x5BB6;&#x4FE1;&#x606F;&#x7684;&#x201C;&#x5BFB;&#x5740;&#x65B9;&#x5F0F;&#x201D;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tag = GetTag()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If (Tag = &amp;H1) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x6A21;&#x5F0F;0x01&#xFF0C;&#x8868;&#x793A;&#x63A5;&#x4E0B;&#x6765;&#x7684;3&#x4E2A;&#x5B57;&#x8282;&#x662F;&#x8868;&#x793A;&#x504F;&#x79FB;&#x4F4D;&#x7F6E;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileStrm.Seek(GetOffset(), SeekOrigin.Begin)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x7EE7;&#x7EED;&#x68C0;&#x67E5;&#x201C;&#x5BFB;&#x5740;&#x65B9;&#x5F0F;&#x201D;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tag = GetTag()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If (Tag = &amp;H2) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x6A21;&#x5F0F;0x02&#xFF0C;&#x8868;&#x793A;&#x63A5;&#x4E0B;&#x6765;&#x7684;3&#x4E2A;&#x5B57;&#x8282;&#x4EE3;&#x8868;&#x56FD;&#x5BB6;&#x4FE1;&#x606F;&#x7684;&#x504F;&#x79FB;&#x4F4D;&#x7F6E;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x5148;&#x5C06;&#x8FD9;&#x4E2A;&#x504F;&#x79FB;&#x4F4D;&#x7F6E;&#x4FDD;&#x5B58;&#x8D77;&#x6765;&#xFF0C;&#x56E0;&#x4E3A;&#x6211;&#x4EEC;&#x8981;&#x8BFB;&#x53D6;&#x5B83;&#x540E;&#x9762;&#x7684;&#x5730;&#x533A;&#x4FE1;&#x606F;&#x3002;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;country_Offset = GetOffset()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x8BFB;&#x53D6;&#x5730;&#x533A;&#x4FE1;&#x606F;&#xFF08;&#x6CE8;&#xFF1A;&#x6309;&#x7167;Luma&#x7684;&#x8BF4;&#x660E;&#xFF0C;&#x597D;&#x50CF;&#x6CA1;&#x6709;&#x8FD9;&#x4E48;&#x591A;&#x79CD;&#x53EF;&#x80FD;&#x6027;&#xFF0C;&#x4F46;&#x5728;&#x6D4B;&#x8BD5;&#x8FC7;&#x7A0B;&#x4E2D;&#x597D;&#x50CF;&#x6709;&#x4E9B;&#x60C5;&#x51B5;&#x6CA1;&#x6709;&#x8003;&#x8651;&#x5230;&#xFF0C;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x6240;&#x4EE5;&#x5199;&#x4E86;&#x4E2A;ReadArea()&#x6765;&#x8BFB;&#x53D6;&#x3002;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;area = ReadArea()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x8BFB;&#x53D6;&#x56FD;&#x5BB6;&#x4FE1;&#x606F;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileStrm.Seek(country_Offset, SeekOrigin.Begin)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;country = ReadString()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x8FD9;&#x79CD;&#x6A21;&#x5F0F;&#x8BF4;&#x660E;&#x63A5;&#x4E0B;&#x6765;&#x5C31;&#x662F;&#x4FDD;&#x5B58;&#x7684;&#x56FD;&#x5BB6;&#x548C;&#x5730;&#x533A;&#x4FE1;&#x606F;&#x4E86;&#xFF0C;&#x4EE5;&#39;\0&#39;&#x4EE3;&#x8868;&#x7ED3;&#x675F;&#x3002;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileStrm.Seek(-1, SeekOrigin.Current)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;country = ReadString()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;area = ReadArea()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ElseIf (Tag = &amp;H2) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x6A21;&#x5F0F;0x02&#xFF0C;&#x8BF4;&#x660E;&#x56FD;&#x5BB6;&#x4FE1;&#x606F;&#x662F;&#x4E00;&#x4E2A;&#x504F;&#x79FB;&#x4F4D;&#x7F6E;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;country_Offset = GetOffset()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x5148;&#x8BFB;&#x53D6;&#x5730;&#x533A;&#x4FE1;&#x606F;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;area = ReadArea()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x8BFB;&#x53D6;&#x56FD;&#x5BB6;&#x4FE1;&#x606F;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileStrm.Seek(country_Offset, SeekOrigin.Begin)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;country = ReadString()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x8FD9;&#x79CD;&#x6A21;&#x5F0F;&#x6700;&#x7B80;&#x5355;&#x4E86;&#xFF0C;&#x76F4;&#x63A5;&#x8BFB;&#x53D6;&#x56FD;&#x5BB6;&#x548C;&#x5730;&#x533A;&#x5C31;OK&#x4E86;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileStrm.Seek(-1, SeekOrigin.Current)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;country = ReadString()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;area = ReadArea()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return country + &#34; &#34; + area<br/>&nbsp;&nbsp;&nbsp;&nbsp;End Function<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x4ECE;&#x5F53;&#x524D;&#x4F4D;&#x7F6E;&#x8BFB;&#x53D6;&#x4E00;&#x4E2A;&#x5B57;&#x7B26;&#x4E32;&#xFF08;&#x56FD;&#x5BB6;&#x6216;&#x8005;&#x5730;&#x533A;&#x4FE1;&#x606F;&#xFF09;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Protected Function ReadString() As String<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim Offset As UInt32 = 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim TempByteArray(256) As Byte<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TempByteArray(Offset) = FileStrm.ReadByte()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;While (TempByteArray(Offset) &lt;&gt; &amp;H0)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Offset += 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TempByteArray(Offset) = FileStrm.ReadByte()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End While<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return System.Text.Encoding.Default.GetString(TempByteArray)<br/>&nbsp;&nbsp;&nbsp;&nbsp;End Function<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x4ECE;&#x5F53;&#x524D;&#x6587;&#x4EF6;&#x4F4D;&#x7F6E;&#x8BFB;&#x53D6;&#x5730;&#x533A;&#x4FE1;&#x606F;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Protected Function ReadArea() As String<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim Tag As Byte = GetTag()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If (Tag = &amp;H1 o&#114; Tag = &amp;H2) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileStrm.Seek(GetOffset(), SeekOrigin.Begin)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return ReadString()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileStrm.Seek(-1, SeekOrigin.Current)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return ReadString()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;End Function<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x4ECE;&#x5F53;&#x524D;&#x6587;&#x4EF6;&#x4F4D;&#x7F6E;&#x8BFB;&#x53D6;&#x4E00;&#x4E2A;&#x5B57;&#x8282;&#x7684;&#x6807;&#x8BC6;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Protected Function GetTag() As Byte<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return FileStrm.ReadByte()<br/>&nbsp;&nbsp;&nbsp;&nbsp;End Function<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x5F97;&#x5230;&#x6307;&#x5B9A;&#x7D22;&#x5F15;&#x4F4D;&#x7F6E;&#x7684;&#x4FE1;&#x606F;&#xFF08;IP&#x8D77;&#x59CB;&#x8303;&#x56F4;&#xFF09;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Protected Function IndexInfoAtPos(ByVal Index_Pos As Int32) As CZ_INDEX_INFO<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim Index_Info As New CZ_INDEX_INFO<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x6839;&#x636E;&#x7D22;&#x5F15;&#x7F16;&#x53F7;&#x8BA1;&#x7B97;&#x51FA;&#x5728;&#x6587;&#x4EF6;&#x4E2D;&#x5728;&#x504F;&#x79FB;&#x4F4D;&#x7F6E;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileStrm.Seek(Index_Set + 7 * Index_Pos, SeekOrigin.Begin)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Index_Info.IpSet = GetUInt32()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Index_Info.Offset = GetOffset()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileStrm.Seek(Index_Info.Offset, SeekOrigin.Begin)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Index_Info.IpEnd = GetUInt32()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return Index_Info<br/>&nbsp;&nbsp;&nbsp;&nbsp;End Function<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x8BFB;&#x53D6;3&#x4E2A;&#x5B57;&#x8282;&#xFF0C;&#x5F97;&#x5230;&#x504F;&#x79FB;&#x4F4D;&#x7F6E;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Protected Function GetOffset() As UInt32<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim TempByte4(4) As Byte<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TempByte4(0) = FileStrm.ReadByte()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TempByte4(1) = FileStrm.ReadByte()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TempByte4(2) = FileStrm.ReadByte()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TempByte4(3) = 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return BitConverter.ToUInt32(TempByte4, 0)<br/>&nbsp;&nbsp;&nbsp;&nbsp;End Function<br/>&nbsp;&nbsp;&nbsp;&nbsp;Protected Function GetUInt32() As UInt32<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim TempByte4(4) As Byte<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileStrm.Read(TempByte4, 0, 4)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return BitConverter.ToUInt32(TempByte4, 0)<br/>&nbsp;&nbsp;&nbsp;&nbsp;End Function<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x5C06;&#x5B57;&#x7B26;&#x4E32;&#x7684;IP&#x8F6C;&#x6362;&#x6210;Int32<br/>&nbsp;&nbsp;&nbsp;&nbsp;Public Shared Function IPToUInt32(ByVal Ipvalue As String) As UInt32<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim IpByte() As String = Ipvalue.Split(&#34;.&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim nUpperBound As Int32 = IpByte.GetUpperBound(0)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If nUpperBound &lt;&gt; 3 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ReDim Preserve IpByte(4)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;For i As Int32 = 1 To 3 - nUpperBound<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IpByte(nUpperBound + i) = &#34;0&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Next<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim TempByte4(4) As Byte<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;For i As Int32 = 0 To 3<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x5982;&#x679C;&#x662F;.Net 2.0&#x53EF;&#x4EE5;&#x652F;&#x6301;TryParse&#x3002;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;If Not (Byte.TryParse(IpByte(i), TempByte4(3 - i))) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;TempByte4(3 - i) = &amp;H0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If (IsNumeric(IpByte(i))) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TempByte4(3 - i) = CInt(IpByte(i)) And &amp;HFF<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Next<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return BitConverter.ToUInt32(TempByte4, 0)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;System.Net.IPAddress.NetworkToHostOrder<br/>&nbsp;&nbsp;&nbsp;&nbsp;End Function<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x5C06;Int32&#x578B;&#x7684;IP&#x8F6C;&#x6362;&#x6210;&#x5B57;&#x7B26;&#x4E32;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Public Shared Function UInt32ToIP(ByVal UInt32value As UInt32) As String<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return New System.Net.IPAddress(System.Net.IPAddress.HostToNetworkOrder(UInt32value)).ToString()<br/>&nbsp;&nbsp;&nbsp;&nbsp;End Function<br/>End Class<br/>&#x4F7F;&#x7528;&#x793A;&#x4F8B;&#xFF1A;<br/>&#x590D;&#x5236;&#x5185;&#x5BB9;&#x5230;&#x526A;&#x8D34;&#x677F; &#x7A0B;&#x5E8F;&#x4EE3;&#x7801;Dim qq As PHCZIP = New PHCZIP(Server.MapPath(&#34;QQWry.Dat&#34;))<br/>Dim address As String = qq.GetAddressWithIP(&#34;211.138.147.158&#34;)<br/>Response.Write(address)</p><p> + <a href="#CommentCard">&#x67E5;&#x770B;&#x5F53;&#x524D;&#x65E5;&#x5FD7;&#x8BC4;&#x8BBA;</a> (0)</p><p>&nbsp;<br/><br/><a href="wap.asp?do=Login">&#x767B;&#x5F55;</a></p><p><br/>&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;</p><p><a href="wap.asp">&#x6728;&#x5B50;&#x5C4B;</a></p><p><a href="http://www.pjhome.net/wap.asp">PJBlog3&nbsp;v3.2.9.518</a>&nbsp;Inside.</p><p>Processed&nbsp;In&nbsp;0.688&nbsp;ms</p><do type="prev" label="&#x8FD4;&#x56DE;"><prev/></do></card><card id="postCommentCard"><p><b>&#x6807;&#x9898;&#x3A;</b> <a href="#MainCard">&#x56;&#x42;&#x2E;&#x4E;&#x45;&#x54;&#x8BFB;&#x53D6;&#x7EAF;&#x771F;&#x7248;&#x51;&#x51;&#x20;&#x49;&#x50;&#x6570;&#x636E;&#x5E93;&#x793A;&#x4F8B;</a></p><p><br/>你没有权限发表评论</p><p><br/>&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;</p><p><a href="wap.asp">&#x6728;&#x5B50;&#x5C4B;</a></p><p><a href="http://www.pjhome.net/wap.asp">PJBlog3&nbsp;v3.2.9.518</a>&nbsp;Inside.</p><p>Processed&nbsp;In&nbsp;0.688&nbsp;ms</p><do type="prev" label="&#x8FD4;&#x56DE;"><prev/></do></card><card id="CommentCard"><p>&#x6682;&#x65E0;&#x8BC4;&#x8BBA;</p><p><a href="#MainCard">&#x8FD4;&#x56DE;</a></p><p><br/>&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;</p><p><a href="wap.asp">&#x6728;&#x5B50;&#x5C4B;</a></p><p><a href="http://www.pjhome.net/wap.asp">PJBlog3&nbsp;v3.2.9.518</a>&nbsp;Inside.</p><p>Processed&nbsp;In&nbsp;0.688&nbsp;ms</p><do type="prev" label="&#x8FD4;&#x56DE;"><prev/></do></card>
</wml>
