Exemple #1
0
        private static NetRange API(string ip)
        {
            // send request to json endpoint
            HttpWebRequest r = (HttpWebRequest)HttpWebRequest.Create("https://stat.ripe.net/data/whois/data.json?resource=" + ip.ToString());

            r.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:54.0) Gecko/20100101 Firefox/54.0";
            r.Headers.Add("Upgrade-Insecure-Requests: 1");
            r.Method = "GET";
            r.Headers.Add(HttpRequestHeader.Cookie, "serverid=www-plone-3; path=/");
            // parse response
            HttpWebResponse resp = (HttpWebResponse)r.GetResponse();

            string response;

            using (var sr = new StreamReader(resp.GetResponseStream())) {
                response = sr.ReadToEnd();
            }

            try
            {
                // get netrange (if any)
                JObject json     = JObject.Parse(response);
                string  netrange = json["data"]["records"][0][0]["value"].ToString();
                var     ips      = NetRange.GetNetRangeIPs(netrange);
                return(new NetRange(ips[0], ips[1], "netrangeObtainedFromRipe"));
            }
            catch (Exception)
            {
                // if there wasn't any netrange, return whole 0.0.0.0 to 255.255.255.255
                return(new NetRange("0.0.0.0", "255.255.255.255", "ripe_noNetRangeFound"));
            }
        }