/// <summary> /// 获取所查询地区的编码 /// </summary> /// <param name="ip">要查找的IP地址</param> /// <returns>地区编码</returns> public string GetAreaCode(string ip) { string ipAddress = GetAddress(ip); if (string.IsNullOrEmpty(ipAddress)) return string.Empty; string ipCountry = ipAddress.Substring(0, ipAddress.LastIndexOf(' ')); AreaService areaService = new AreaService(); if (string.IsNullOrEmpty(ipCountry)) return string.Empty; //在中国的省(直辖市)地区查找 Area china = areaService.Get("A1560000"); if (china == null) return string.Empty; foreach (var area in china.Children) { if (ipCountry.Contains(area.Name.Substring(0, 2))) { foreach (var city in area.Children) { if (ipCountry.Contains(city.Name)) { foreach (var district in city.Children) { if (ipCountry.Contains(city.Name)) { return city.AreaCode; } } return city.AreaCode; } } return area.AreaCode; } } //先从国家地区中查找 IEnumerable<Area> areas = areaService.GetRoots(); foreach (var area in areas) { if (ipCountry.Contains(area.Name)) return area.AreaCode; } return string.Empty; }