当前位置: 首页 > news >正文

开网站做外贸wordpress page style

开网站做外贸,wordpress page style,岳阳企业网站定制开发,个人网页制作成品图商业收费 百度地图高德地图腾讯地图纯真IP 开源免费 纯真ip免费版 以前可以直接下载,现在获取ip数据库的方式改变了,自行官网查看把,个人或者学术研究,商用追责,商业用途慎用 using System.Collections.Generic; us…

商业收费

  • 百度地图
  • 高德地图
  • 腾讯地图
  • 纯真IP

开源免费

纯真ip免费版

以前可以直接下载,现在获取ip数据库的方式改变了,自行官网查看把,个人或者学术研究,商用追责,商业用途慎用

using System.Collections.Generic;
using System.IO;
using System.Reflection;
using System.Text;
using System;
using Microsoft.Extensions.Options;
using Youhuo.ConfigModel;
using System.Text.RegularExpressions;namespace Stu01
{public class IPSearchHelper{private readonly IOptions<ChunZhenSetting> options;System.IO.FileStream ipFile;long ip;public IPSearchHelper(IOptions<ChunZhenSetting> options){this.options = options;}///<summary>/// 地理位置,包括国家和地区///</summary>public struct IPLocation{public string country, area;}///<summary>/// 获取指定IP所在地理位置///</summary>///<param name="strIP">要查询的IP地址</param>///<returns></returns>public IPLocation GetIPLocation(string strIP){IPLocation loc = new IPLocation();//return loc;if (string.IsNullOrEmpty(strIP)){return loc;}var match = Regex.Match(strIP, @"^(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}$");if (!match.Success){return loc;}ip = IPToLong(strIP);var RegexStr = @"(^[\/\\].*)|(.*:.*)";//判断是不是绝对路径,options.Value.DatPath纯真数据库存放的路径if (System.Text.RegularExpressions.Regex.IsMatch(options.Value.DatPath, RegexStr)){ipFile = new System.IO.FileStream(options.Value.DatPath, System.IO.FileMode.Open, System.IO.FileAccess.Read);}else{var fullPath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), options.Value.DatPath);ipFile = new System.IO.FileStream(fullPath, System.IO.FileMode.Open, System.IO.FileAccess.Read);}long[] ipArray = BlockToArray(ReadIPBlock());long offset = SearchIP(ipArray, 0, ipArray.Length - 1) * 7 + 4;ipFile.Position += offset;//跳过起始IPipFile.Position = ReadLongX(3) + 4;//跳过结束IPint flag = ipFile.ReadByte();//读取标志if (flag == 1)//表示国家和地区被转向{ipFile.Position = ReadLongX(3);flag = ipFile.ReadByte();//再读标志}long countryOffset = ipFile.Position;loc.country = ReadString(flag);if (flag == 2){ipFile.Position = countryOffset + 3;}flag = ipFile.ReadByte();loc.area = ReadString(flag);ipFile.Close();ipFile = null;return loc;}///<summary>/// 将字符串形式的IP转换位long///</summary>///<param name="strIP"></param>///<returns></returns>public long IPToLong(string strIP){if (strIP.Equals("::1")){strIP = "127.0.0.1";}byte[] ip_bytes = new byte[8];string[] strArr = strIP.Split(new char[] { '.' });if (strArr.Length <= 1){return 0;}byte tmpNumber;for (int i = 0; i < 4; i++){var res = byte.TryParse(strArr[3 - i], out tmpNumber);ip_bytes[i] = res ? tmpNumber : (byte)0;}return BitConverter.ToInt64(ip_bytes, 0);}///<summary>/// 将索引区字节块中的起始IP转换成Long数组///</summary>///<param name="ipBlock"></param>long[] BlockToArray(byte[] ipBlock){long[] ipArray = new long[ipBlock.Length / 7];int ipIndex = 0;byte[] temp = new byte[8];for (int i = 0; i < ipBlock.Length; i += 7){Array.Copy(ipBlock, i, temp, 0, 4);ipArray[ipIndex] = BitConverter.ToInt64(temp, 0);ipIndex++;}return ipArray;}///<summary>/// 从IP数组中搜索指定IP并返回其索引///</summary>///<param name="ipArray">IP数组</param>///<param name="start">指定搜索的起始位置</param>///<param name="end">指定搜索的结束位置</param>///<returns></returns>int SearchIP(long[] ipArray, int start, int end){int middle = (start + end) / 2;if (middle == start)return middle;else if (ip < ipArray[middle])return SearchIP(ipArray, start, middle);elsereturn SearchIP(ipArray, middle, end);}///<summary>/// 读取IP文件中索引区块///</summary>///<returns></returns>byte[] ReadIPBlock(){long startPosition = ReadLongX(4);long endPosition = ReadLongX(4);long count = (endPosition - startPosition) / 7 + 1;//总记录数ipFile.Position = startPosition;byte[] ipBlock = new byte[count * 7];ipFile.Read(ipBlock, 0, ipBlock.Length);ipFile.Position = startPosition;return ipBlock;}///<summary>/// 从IP文件中读取指定字节并转换位long///</summary>///<param name="bytesCount">需要转换的字节数,主意不要超过8字节</param>///<returns></returns>long ReadLongX(int bytesCount){byte[] _bytes = new byte[8];ipFile.Read(_bytes, 0, bytesCount);return BitConverter.ToInt64(_bytes, 0);}///<summary>/// 从IP文件中读取字符串///</summary>///<param name="flag">转向标志</param>///<returns></returns>string ReadString(int flag){if (flag == 1 || flag == 2)//转向标志ipFile.Position = ReadLongX(3);elseipFile.Position -= 1;List<byte> list = new List<byte>();byte b = (byte)ipFile.ReadByte();while (b > 0){list.Add(b);b = (byte)ipFile.ReadByte();}Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);return Encoding.GetEncoding("GB2312").GetString(list.ToArray());}}
}

但是有高并发问题

ip2region

提供了多种语言的支持,更新频率高,支持高并发

Install-Package IP2Region.Net

下载保存xdbhttps://github.com/lionsoul2014/ip2region/blob/master/data/ip2region.xdb
在这里插入图片描述

//这里为啥直接填写ip2region.xdb,因为用了始终复制
ISearcher searcher = new Searcher(CachePolicy.File, "ip2region.xdb");
var ipResult = searcher.Search("123.232.22.18");

在这里插入图片描述

iptools

C#版本,简单易用,支持高并发响应快,但是更新频率不高

Install-Package IPTools.China

下载ip数据库https://github.com/stulzq/IPTools/raw/master/db/ip2region.db,设置为始终复制
在这里插入图片描述
运行代码即可

IpTool.Search("your ip address");

结果

{"IpAddress":"123.232.22.18","Country":"中国","CountryCode":null,"Province":"山东","ProvinceCode":null,"City":"济南","PostCode":null,"NetworkOperator":"联通","Latitude":0,"Longitude":0,"AccuracyRadius":null
}
http://www.yayakq.cn/news/285758/

相关文章:

  • 在哪里做百度网站在技校计算机网站建设
  • 山西做网站哪个好公司logo设计费用
  • 一个虚拟主机可以做几个网站WordPress自动推送到公众号
  • 淘客采集网站怎么做的百度关键词刷搜索量
  • 如何创建旅游网站seo成都
  • asp.net mvc 5网站开发之美营销策划的内容包括哪些
  • .net网站建设网站页面如何架构
  • 淄博建站哪家好html网页设计代码作业大一
  • vue企业门户网站模板特产网站建设策划书
  • wordpress封堵默认注册入口企业网站优化包括哪三个层面
  • 淘宝网站建设的主要工作学室内设计培训哪里好
  • 网站建设小工具关键词举例
  • 网站网站做员工犯法吗易书网上书城网站建设方案
  • 网站含义三合一网站模板
  • 建单页网站九牧全球市场地位
  • o2o网站平台怎么做谷歌搜索广告优化
  • 什么样的网站适合搜索引擎收录做中介最好用的网站
  • 购物网站seo搜索引擎前期分析旅游网站的目的
  • 苏州做网站的企业济南 网站建设 域名注册
  • 重新安wordpress网站h5免费制作平台火蚁
  • 免费私人网站建设平台网站的统计代码
  • 手机网站怎么设计医疗网站建设意见
  • 上海网站建设公司服务怎么做wordpress 缓存机制
  • 同里做网站如何做网站拉动条
  • 网站加入视频iis 7.0 搭建网站
  • 泉州建站模板系统非常旺财的公司名字
  • 服装网站模板免费下载社科联网站建设方案策划书
  • 网站用户体验比较网站模版建设工具
  • 有什么设计logo网站宁波企业seo推广
  • 前端做数据表格的网站乐清在线网