关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

IP地址查询的方法

发布时间:2019-11-14 11:05:38

代码查询IP地址如下:

using System;
using System.Linq;
using System.Collections;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Text;
using System.Net;
using System.Net.Http;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq;
using System.IO;
 
namespace DTcms.Web.api.ipcheck
{
    /// <summary>
    /// ipcheck 的摘要说明
    /// </summary>
    public class ipcheck : IHttpHandler
    {
 
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            string cip = context.Request["cip"];
            if (string.IsNullOrEmpty(cip))
            {
                context.Response.Write("[{\"code\":\"1\",\"msg\":\"请先输入ip或者域名!\"}]");
            }
            else//如果输入了 在判断是ip还是域名
            {
                string ipstring = "";
                try
                {
                    IPAddress ip;
                    if (IPAddress.TryParse(cip, out ip))
                        ipstring = ip.ToString();
                    else
                        ipstring = Dns.GetHostEntry(cip).AddressList[0].ToString();
                }
                catch (Exception)
                {
                    //throw new Exception("IP Address Error");
                    context.Response.Write("[{\"code\":\"1\",\"msg\":\"您输入的域名或ip错误!\"}]");
                    return;
                }
 
                string r = "[" + getIP(ipstring) + "]";
                JArray json = (JArray)JsonConvert.DeserializeObject(r);
                //JObject o = (JObject)ja[0];
                //this.message.Text = "您查询的ip是:" + o["data"]["ip"] + ",国家:" + o["data"]["country"] + ",区域:" + o["data"]["area"] + ",城市:" + o["data"]["city"] + ",服务提供商:" + o["data"]["isp"];
                context.Response.Write(json);
            }
        }
 
        public string getIP(string ip)
        {
            var postData = new Dictionary<string, string>
                {
                    {"ip",ip}
                };
            var url = "http://localhost/api/ipcheck/ipapi.ashx";
            var urlEncodedContent = new FormUrlEncodedContent(postData);
            var httpClient = new HttpClient();
            var result = httpClient.PostAsync(url, urlEncodedContent).Result.Content.ReadAsStringAsync().Result;
            return result;
        }
 
        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}
ipapi.ashx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.SessionState;
using System.Net.Http;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
 
namespace DTcms.Web.api.ipcheck
{
    /// <summary>
    /// ipapi 的摘要说明
    /// </summary>
    public class ipapi : IHttpHandler
    {
 
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            //context.Response.Write("Hello World");
            string ip = context.Request["ip"];
            var postData = new Dictionary<string, string>
                {
                    {"ip",ip}
                };
            var url = "http://ip.taobao.com/service/getIpInfo.php";
            var urlEncodedContent = new FormUrlEncodedContent(postData);
            var httpClient = new HttpClient();
            var result = httpClient.PostAsync(url, urlEncodedContent).Result.Content.ReadAsStringAsync().Result;
            context.Response.Write(result);
 
        }
 
        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}
接口地址:
/api/ipcheck/ipcheck.ashx
HTTP请求方式:
POST/GET
响应代码:
json
ajax请求:
$.ajax({
    type: "POST",
    url: "/api/ipcheck/ipcheck.ashx",
    data: {
        cip: $("#searchip").val()
    },
    dataType: "json",
    beforeSend: function () { },
    complete: function () { },
    success: function (d) {
        alert("查询结果:" + JSON.stringify(d));
    }
})


返回查询结果:

201610251527336878.jpg


/template/Home/Zkeys/PC/Static