Python을 사용하여 IP 주소의 위치 정보 얻기
                                            
                                                
                                                
                                                
                                                
                                                
                                                 11371 단어  pythonprogramming
                    
소개
우리는 종종 IP 주소 또는 우리의 위치를 알아야 합니다. 이에 대한 또 다른 사용 사례는 웹사이트의 사용자에게 로그인 정보를 보내려는 경우입니다. 이 블로그에서 우리는 파이썬을 사용하여 IP 주소의 위치를 알 수 있는 방법을 볼 것입니다.
 도구 준비
목표를 달성하기 위해 아래에 언급된 두 가지 API를 사용합니다.
목표를 달성하기 위해 아래에 언급된 두 가지 API를 사용합니다.
ipify : 이 API는 요청이 들어오는 IP 주소를 아는 데 도움이 됩니다.
ipapi : 이 API는 특정 IP 주소에 대한 위치 정보를 가져오는 데 도움이 됩니다.
이러한 API와 상호 작용하기 위해 Python에서
requests 라이브러리를 사용합니다. API를 처음 사용하는 경우 확인this tutorial하여 API에 대해 알아보세요.다음과 같이
pip 명령을 사용하여 이 라이브러리를 설치할 수 있습니다.$ pip install requests
라이브러리가 설치되면 시작합니다!
위치 정보 가져오기
논의한 대로 먼저 첫 번째 API에서 IP 주소를 가져옵니다. 그런 다음 이 IP 주소를 사용하여 이 특정 IP 주소에 대한 위치 정보를 가져옵니다. 그래서, 우리는 두 가지 기능을 갖게 될 것입니다.
 import requests
def get_ip():
    response = requests.get('https://api64.ipify.org?format=json').json()
    return response["ip"]
def get_location():
    ip_address = get_ip()
    response = requests.get(f'https://ipapi.co/{ip_address}/json/').json()
    location_data = {
        "ip": ip_address,
        "city": response.get("city"),
        "region": response.get("region"),
        "country": response.get("country_name")
    }
    return location_data
print(get_location())
위의 코드에는 get_ip() 와 get_location() 라는 두 개의 함수가 있습니다. 각각에 대해 별도로 논의해 보겠습니다.
 get_ip() 함수
ipify의 API documentation에 따라 다음과 같은 JSON 응답을 얻으려면  https://api.ipify.org?format=json 에서 GET 요청을 해야 합니다.
 {
  "ip": "117.214.109.137"
}
이 응답을 하나의 키-값 쌍이 있는 일종의 Python dictionary인 response 변수에 저장합니다. 따라서 우리는 키ip의 값을 response["ip"]로 반환했습니다.
 get_location() 함수
ipapi의 API documentation에 따라 특정 IP 주소에 대한 위치 정보를 얻으려면 https://ipapi.co/{ip}/{format}/에 GET 요청을 해야 합니다. {ip}는 IP 주소로 대체되고 {format}는 json , jsonp , xml , csv , yaml 중 하나로 대체될 수 있습니다. 이 함수는 내부적으로 get_ip() 함수를 호출하여 IP 주소를 가져온 다음 IP 주소가 있는 URL에 대해 GET 요청을 합니다. 이 API는 다음과 같은 JSON 응답을 반환합니다.
 {
"ip": "117.214.109.137",
"version": "IPv4",
"city": "Gaya",
"region": "Bihar",
"region_code": "BR",
"country": "IN",
"country_name": "India",
"country_code": "IN",
"country_code_iso3": "IND",
"country_capital": "New Delhi",
"country_tld": ".in",
"continent_code": "AS",
"in_eu": false,
"postal": "823002",
"latitude": 24.7935,
"longitude": 85.012,
"timezone": "Asia/Kolkata",
"utc_offset": "+0530",
"country_calling_code": "+91",
"currency": "INR",
"currency_name": "Rupee",
"languages": "en-IN,hi,bn,te,mr,ta,ur,gu,kn,ml,or,pa,as,bh,sat,ks,ne,sd,kok,doi,mni,sit,sa,fr,lus,inc",
"country_area": 3287590,
"country_population": 1352617328,
"asn": "AS9829",
"org": "National Internet Backbone"
}
응답에서 많은 데이터를 얻습니다. 당신에게 맞는 것을 사용할 수 있습니다. 이 자습서에서는 city , region 및 country 만 사용할 것입니다. 그래서 우리는 location_data라는 사전을 만들고 그 안에 모든 데이터를 저장하고 똑같이 반환했습니다.
마지막으로 get_location() 함수를 호출하고 출력을 출력합니다. 출력은 다음과 같습니다.
 {
  "ip": "117.214.109.137", 
  "city": "Gaya", 
  "region": "Bihar", 
  "country": "India"
}
 결론
이 블로그에서는 웹 서비스와 상호 작용하여 특정 IP 주소에 대한 위치 정보를 얻는 방법을 배웠습니다.
읽어 주셔서 감사합니다!
                
                    
        
    
    
    
    
    
                
                
                
                
                    
                        
                            
                            
                            Reference
                            
                            이 문제에 관하여(Python을 사용하여 IP 주소의 위치 정보 얻기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
                                
                                https://dev.to/ashutoshkrris/get-location-information-of-ip-address-using-python-18f2
                            
                            
                            
                                텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                            
                            
                                
                                
                                 우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                            
                            
                        
                    
                
                
                
            
import requests
def get_ip():
    response = requests.get('https://api64.ipify.org?format=json').json()
    return response["ip"]
def get_location():
    ip_address = get_ip()
    response = requests.get(f'https://ipapi.co/{ip_address}/json/').json()
    location_data = {
        "ip": ip_address,
        "city": response.get("city"),
        "region": response.get("region"),
        "country": response.get("country_name")
    }
    return location_data
print(get_location())
{
  "ip": "117.214.109.137"
}
{
"ip": "117.214.109.137",
"version": "IPv4",
"city": "Gaya",
"region": "Bihar",
"region_code": "BR",
"country": "IN",
"country_name": "India",
"country_code": "IN",
"country_code_iso3": "IND",
"country_capital": "New Delhi",
"country_tld": ".in",
"continent_code": "AS",
"in_eu": false,
"postal": "823002",
"latitude": 24.7935,
"longitude": 85.012,
"timezone": "Asia/Kolkata",
"utc_offset": "+0530",
"country_calling_code": "+91",
"currency": "INR",
"currency_name": "Rupee",
"languages": "en-IN,hi,bn,te,mr,ta,ur,gu,kn,ml,or,pa,as,bh,sat,ks,ne,sd,kok,doi,mni,sit,sa,fr,lus,inc",
"country_area": 3287590,
"country_population": 1352617328,
"asn": "AS9829",
"org": "National Internet Backbone"
}
{
  "ip": "117.214.109.137", 
  "city": "Gaya", 
  "region": "Bihar", 
  "country": "India"
}
이 블로그에서는 웹 서비스와 상호 작용하여 특정 IP 주소에 대한 위치 정보를 얻는 방법을 배웠습니다.
읽어 주셔서 감사합니다!
Reference
이 문제에 관하여(Python을 사용하여 IP 주소의 위치 정보 얻기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ashutoshkrris/get-location-information-of-ip-address-using-python-18f2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)