zoukankan      html  css  js  c++  java
  • 用python获取ip信息

     
     
    1.138网站

    http://user.ip138.com/ip/
    首次注册后赠送1000次请求,API接口请求格式如下,必须要有token值

    1 import httplib2
    2 from urllib.parse import urlencode #python3
    3 #from urllib import urlencode #python2
    4 params = urlencode({'ip':'8.8.8.8','datatype':'jsonp','callback':'find'})
    5 url = 'http://api.ip138.com/query/?'+params
    6 headers = {"token":"8594766483a2d65d76804906dd1a1c6a"}#token为示例
    7 http = httplib2.Http()
    8 response, content = http.request(url,'GET',headers=headers)
    9 print(content.decode("utf-8"))

    响应格式

    {
    "ret":"ok",   // ret 值为 ok 时 返回 data 数据 为err时返回msg数据
    "ip":"114.114.114.114",  // ip
    "data":[
                "中国",   // 国家
                 "江苏",   // 省会或直辖市
                 "南京",    // 地区或城市
                 "电信",     // 运营商
                 "210000",   // 邮政编码
                 "025"       // 地区区号
             ]
    }     

    2、ip-api,部分数据不准确,但不限请求次数,且可批量json请求,返回数据可选:json、xml、csv
      帮助文档

      

    请求接口                                     请求方式           响应
     http://ip-api.com/json/8.8.8.8?lang=zh-CN    HTTP GET           如下
    
    
     1 {
     2 "status":"success",
     3 "country":"美国",
     4 "countryCode":"US",
     5 "region":"VA",
     6 "regionName":"弗吉尼亚州",
     7 "city":"Ashburn",
     8 "zip":"20149",
     9 "lat":39.0438,
    10 "lon":-77.4874,
    11 "timezone":"America/New_York",
    12 "isp":"Level 3",
    13 "org":"Google LLC",
    14 "as":"AS15169 Google LLC",
    15 "query":"8.8.8.8"
    16 }

    哈哈,上python,获取信息

     1 """
     2 简化版
     3 """
     4 import requests
     5 lid=input("请输入你要查询的IP:")
     6 
     7 headers = {
     8         'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}
     9 url="http://ip-api.com/json/{}?fields=status,message,country,countryCode,region,regionName,city,zip,lat,lon,timezone,isp,org,as,query&lang=zh-CN".format(lid) #加headers反爬
    10 rb=requests.get(url,headers=headers)
    11 print(rb.text)

    能获取ip信息的,但有点乱,不喜欢,个人有点强迫症,优化一下吧

     1 #!/usr/bin/env python3
     2 # coding:utf-8
     3 # 2019/11/14 14:45
     4 #lanxing
     5 import requests
     6 import time
     7 
     8 strat=time.time()
     9 def chax():
    10         lid=input("请输入你要查询的IP:")
    11         print("**************************************开始获取IP信息**********************************************")
    12         head = {
    13         'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}
    14         url="http://ip-api.com/json/{}?fields=status,message,country,countryCode,region,regionName,city,zip,lat,lon,timezone,isp,org,as,query&lang=zh-CN".format(lid)
    15         rb=requests.get(url,headers=head)
    16         # gf=BeautifulSoup(rb)
    17         # print(rb.text)
    18         # print("status:"+rb.content["status"])
    19         response = rb.text
    20         print(type(response))
    21         # print(response)
    22         # 把str转换到dic
    23         dict_response = eval(response)
    24         # for i in dict_response.items():
    25         #         print(i)
    26 
    27         for key,value in dict_response.items():
    28 
    29                 print("IP信息:" + str(key) + " : " + str(value))
    30 
    31 
    32 chax()
    33 end=time.time()
    34 print("**************************************大佬,查询IP信息完成!**************************************")
    35 print('查询耗时:',end-strat)

    这个,理论上没有查询次数限制,有空再搞搞

    参考文档:https://www.jianshu.com/p/bd0616fc30b8

                      https://ip-api.com/docs/api:json#test

  • 相关阅读:
    网页中的图片查看器viewjs使用
    检测和删除多余无用的css
    网页中插入视频的方案
    WebSocket使用教程
    JS+CSS简单实现DIV遮罩层显示隐藏【转藏】
    使用GPS经纬度定位附近地点(某一点范围内查询)
    使用SQL Server Management Studio 创建数据库备份作业
    SVN trunk(主线) branch(分支) tag(标记) 用法详解和详细操作步骤
    关于LINQ方方面面的入门、进阶、深入的文章。
    LINQ体验(7)——LINQ to SQL语句之Group By/Having和Exists/In/Any/All/Contains
  • 原文地址:https://www.cnblogs.com/lanyincao/p/11857498.html
Copyright © 2011-2022 走看看