当前位置:网站首页>How to judge the region of an IP through C?
How to judge the region of an IP through C?
2022-07-03 16:47:00 【Dotnet cross platform】
Consultation area
RC1140
How to use C# Judge a certain IP Region ? So I can make statistics easily .
Answer area
Jaimes
With the help of a third party API Interface , Refer to the website :https://ipapi.co/8.8.8.8/country/ , C# The code is as follows :
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
There is an offline IP Regional Library , It can realize complete offline query , Download link :https://lite.ip2location.com/database/ip-country
Create a table and import
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'
)
GOCode query
We have the database , Next we can use C# The query .
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\n"))));
}
}
}
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();
}
}
}Comment area
I didn't expect an offline version IP Address base , This is good , To study the .
边栏推荐
- 爱可可AI前沿推介(7.3)
- Yu Wenwen, Hu Xia and other stars take you to play with the party. Pipi app ignites your summer
- Daily code 300 lines learning notes day 10
- Central South University | through exploration and understanding: find interpretable features with deep reinforcement learning
- Interviewer: how does the JVM allocate and recycle off heap memory
- Mysql database -dql
- CC2530 common registers
- PHP secondary domain name session sharing scheme
- 网络安全web渗透技术
- [solved] access denied for user 'root' @ 'localhost' (using password: yes)
猜你喜欢

QT串口ui设计和解决显示中文乱码
![[solved] access denied for user 'root' @ 'localhost' (using password: yes)](/img/71/1ff8ed1d773da99054310f96dca3f8.jpg)
[solved] access denied for user 'root' @ 'localhost' (using password: yes)

Simulink oscilloscope data is imported into Matlab and drawn

13mnnimo5-4 German standard steel plate 13MnNiMo54 boiler steel 13MnNiMo54 chemical properties

Yu Wenwen, Hu Xia and other stars take you to play with the party. Pipi app ignites your summer

CC2530 common registers for ADC single channel conversion

Shentong express expects an annual loss of nearly 1billion

What material is sa537cl2 equivalent to in China? Sa537cl2 corresponding material

2022爱分析· 国央企数字化厂商全景报告

2022 love analysis · panoramic report of digital manufacturers of state-owned enterprises
随机推荐
面试之 top k问题
Hands on in-depth learning notes (XIV) 3.7 Simple implementation of softmax regression
[Jianzhi offer] 57 - ii Continuous positive sequence with sum s
TCP congestion control details | 3 design space
function overloading
2022 love analysis · panoramic report of digital manufacturers of state-owned enterprises
What kind of material is 14Cr1MoR? Analysis of chemical composition and mechanical properties of 14Cr1MoR
LeetCode 1658. Minimum operand to reduce x to 0
Explore Netease's large-scale automated testing solutions see here see here
Record windows10 installation tensorflow-gpu2.4.0
为抵制 7-Zip,列出 “三宗罪” ?网友:“第3个才是重点吧?”
Basis of target detection (IOU)
What material is sa537cl1? Sa537cl1 corresponds to the national standard material
"The NTP socket is in use, exiting" appears when ntpdate synchronizes the time
于文文、胡夏等明星带你玩转派对 皮皮APP点燃你的夏日
Develop team OKR in the way of "crowdfunding"
Cocos Creator 2. X automatic packaging (build + compile)
Arduino esp32: overall framework of lvgl project (I)
Google Earth engine (GEE) - daymet v4: daily surface weather data set (1000m resolution) including data acquisition methods for each day
Mysql database -dql