1. 首页
  2. > 香港公司注册 >

全国地区代码表数据库(全国地区代码表免费下载)


回答区

  • Jaimes

可以借助第三方API接口,参考网址:https://ipapi.co/8.8.8.8/country/ , C# 代码如下:


using System; using System.Net; using System.IO; using System.Text; public class Program { public static void Main() { ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://ipapi.co/8.8.8.8/country/"); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); var reader = new System.IO.StreamReader(response.GetResponseStream(), ASCIIEncoding.ASCII); Console.WriteLine(reader.ReadToEnd()); } }

  • Vlam

有一个离线的 IP地区库,可以实现完全的离线查询,下载链接:https://lite.ip2location.com/database/ip-country


  1. 创建表并导入

CREATE DATABASE ip2location GO USE ip2location GO CREATE TABLE [ip2location].[dbo].[ip2location_db1]( [ip_from] float NOT NULL, [ip_to] float NOT NULL, [country_code] nvarchar(2) NOT NULL, [country_name] nvarchar(64) NOT NULL, ) ON [PRIMARY] GO CREATE INDEX [ip_from] ON [ip2location].[dbo].[ip2location_db1]([ip_from]) ON [PRIMARY] GO CREATE INDEX [ip_to] ON [ip2location].[dbo].[ip2location_db1]([ip_to]) ON [PRIMARY] GO BULK INSERT [ip2location].[dbo].[ip2location_db1] FROM C:[path to your CSV file]IP2LOCATION-LITE-DB1.CSV WITH ( FORMATFILE = C:[path to your DB1.FMT file]DB1.FMT ) GO

  1. 代码查询

数据库有了,接下来就可以用 C# 查询了。


public class Form1 { private void Form1_Load(object sender, System.EventArgs e) { string ip = "8.8.8.8"; this.IP2Location(ip); } private void IP2Location(string myip) { IPAddress address = null; if (IPAddress.TryParse(myip, address)) { byte[] addrBytes = address.GetAddressBytes(); this.LittleEndian(addrBytes); UInt32 ipno = 0; ipno = BitConverter.ToUInt32(addrBytes, 0); string sql = "SELECT TOP 1 * FROM ip2location_db1 WHERE ip_to >= " ipno.ToString() ""; object conn = new SqlConnection("Server=yourserver;Database=yourdatabase;User Id=youruserid;Password=yourpassword;"); object comm = new SqlCommand(sql, conn); SqlDataReader reader; comm.Connection.Open(); reader = comm.ExecuteReader(CommandBehavior.CloseConnection); int x = 0; object sb = new StringBuilder(250); if (reader.HasRows) { if (reader.Read()) { for (x = 0; (x <= (reader.FieldCount() - 1)); x ) { sb.Append((reader.GetName(x) (": " (reader.GetValue(x) "r ")))); } } } reader.Close(); MsgBox(sb.ToString()); } } private void LittleEndian(ref byte[] byteArr) { if (BitConverter.IsLittleEndian) { List<byte> byteList = new List<byte>(byteArr); byteList.Reverse(); byteArr = byteList.ToArray(); } } }


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至123456@qq.com 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息