Hướng dẫn how do i find my public ip address in python? - làm cách nào để tìm địa chỉ ip công khai của tôi trong python?

Có một vài cách khác không dựa vào Python kiểm tra một trang web bên ngoài, tuy nhiên hệ điều hành có thể. Vấn đề chính của bạn ở đây, là ngay cả khi bạn không sử dụng Python, nếu bạn đang sử dụng dòng lệnh, thì không có lệnh "tích hợp" nào có thể chỉ cần cho bạn biết IP bên ngoài (WAN). Các lệnh như "IP addr show" và "ifconfig -a" hiển thị cho bạn địa chỉ IP của máy chủ trong mạng. Chỉ có bộ định tuyến thực sự giữ IP bên ngoài. Tuy nhiên, có nhiều cách để tìm địa chỉ IP bên ngoài (WAN IP) từ dòng lệnh.

Những ví dụ này là:

http://ipecho.net/plain ; echo
curl ipinfo.io/ip
dig +short myip.opendns.com @resolver1.opendns.com
dig TXT +short o-o.myaddr.l.google.com @ns1.google.com

Do đó, mã Python sẽ là:

import os
ip = os.popen('wget -qO- http://ipecho.net/plain ; echo').readlines(-1)[0].strip()
print ip

HOẶC

import os
iN, out, err = os.popen3('curl ipinfo.io/ip')
iN.close() ; err.close()
ip = out.read().strip()
print ip

HOẶC

import os
ip = os.popen('dig +short myip.opendns.com @resolver1.opendns.com').readlines(-1)[0].strip()
print ip

Hoặc, cắm bất kỳ ví dụ nào khác ở trên, vào một lệnh như Os.Popen, Os.Popen2, Os.Popen3 hoặc Os.System.

P.S. Bạn có thể sử dụng "Cài đặt PIP3 Pytis" và sử dụng/xem, chương trình "getip", được viết bằng Python. Bạn cũng có thể tìm thấy mã của nó ở đây: https://github.com/pytis/pytis/blob/development/src/pytis/getip.py

Hướng dẫn how do i find my public ip address in python? - làm cách nào để tìm địa chỉ ip công khai của tôi trong python?

Đôi khi bạn sẽ cần biết vị trí của một địa chỉ IP, cho dù đó là của riêng bạn hay của một trang web bạn đang sử dụng.

Một trường hợp sử dụng cho điều này là khi bạn muốn gửi thông tin đăng nhập cho người dùng cho trang web của bạn.

Trong bài viết này, chúng tôi sẽ xem làm thế nào bạn có thể tìm thấy vị trí của một địa chỉ IP bằng Python.

Để thực hiện mục tiêu này, chúng tôi sẽ sử dụng hai API được đề cập dưới đây:

  1. IPify: API này sẽ giúp chúng tôi biết địa chỉ IP từ nơi yêu cầu sẽ đến.: This API will help us know the IP address from where the request is coming.
  2. IPAPI: API này sẽ giúp chúng tôi tìm nạp thông tin vị trí cho một địa chỉ IP cụ thể.: This API will help us fetch location information for a particular IP address.

Để tương tác với các API này, chúng tôi sẽ sử dụng thư viện requests trong Python. Nếu bạn chưa quen với API, hãy đảm bảo bạn xem hướng dẫn này để tìm hiểu về chúng.

Bạn có thể cài đặt thư viện này bằng lệnh

import os
ip = os.popen('wget -qO- http://ipecho.net/plain ; echo').readlines(-1)[0].strip()
print ip
0 như thế này:

$ pip install requests

Khi thư viện được cài đặt, chúng tôi tốt để đi!

Như chúng tôi đã thảo luận, trước tiên chúng tôi sẽ tìm nạp địa chỉ IP của chúng tôi từ API đầu tiên. Sau đó, chúng tôi sẽ sử dụng địa chỉ IP này để tìm nạp thông tin vị trí cho địa chỉ IP cụ thể này. Vì vậy, chúng tôi sẽ có hai chức năng:

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())

Trong mã trên, chúng tôi có hai chức năng -

import os
ip = os.popen('wget -qO- http://ipecho.net/plain ; echo').readlines(-1)[0].strip()
print ip
1 và
import os
ip = os.popen('wget -qO- http://ipecho.net/plain ; echo').readlines(-1)[0].strip()
print ip
2. Hãy thảo luận riêng biệt từng người trong số họ.

Chức năng import os ip = os.popen('wget -qO- http://ipecho.net/plain ; echo').readlines(-1)[0].strip() print ip 3

Theo tài liệu API của IPify, chúng tôi cần đưa ra yêu cầu nhận trên

import os
ip = os.popen('wget -qO- http://ipecho.net/plain ; echo').readlines(-1)[0].strip()
print ip
4 để nhận được phản hồi JSON trông như thế này:GET request on
import os
ip = os.popen('wget -qO- http://ipecho.net/plain ; echo').readlines(-1)[0].strip()
print ip
4
to get a JSON response that looks like this:

{
  "ip": "117.214.109.137"
}

Chúng tôi lưu trữ phản hồi này trong một biến

import os
ip = os.popen('wget -qO- http://ipecho.net/plain ; echo').readlines(-1)[0].strip()
print ip
5, không có gì ngoài một loại từ điển Python với một cặp giá trị khóa. Vì vậy, chúng tôi đã trả lại giá trị của khóa
import os
ip = os.popen('wget -qO- http://ipecho.net/plain ; echo').readlines(-1)[0].strip()
print ip
6 là
import os
ip = os.popen('wget -qO- http://ipecho.net/plain ; echo').readlines(-1)[0].strip()
print ip
7.
import os
ip = os.popen('wget -qO- http://ipecho.net/plain ; echo').readlines(-1)[0].strip()
print ip
5
variable which is nothing but a sort of Python dictionary with one key-value pair. So we returned the value of the key
import os
ip = os.popen('wget -qO- http://ipecho.net/plain ; echo').readlines(-1)[0].strip()
print ip
6 as
import os
ip = os.popen('wget -qO- http://ipecho.net/plain ; echo').readlines(-1)[0].strip()
print ip
7.

Hàm import os ip = os.popen('wget -qO- http://ipecho.net/plain ; echo').readlines(-1)[0].strip() print ip 8

Theo tài liệu API của IPAPI, chúng tôi cần đưa ra yêu cầu nhận trên

import os
ip = os.popen('wget -qO- http://ipecho.net/plain ; echo').readlines(-1)[0].strip()
print ip
9 để nhận thông tin vị trí cho một địa chỉ IP cụ thể.
import os
iN, out, err = os.popen3('curl ipinfo.io/ip')
iN.close() ; err.close()
ip = out.read().strip()
print ip
0 được thay thế bằng địa chỉ IP và
import os
iN, out, err = os.popen3('curl ipinfo.io/ip')
iN.close() ; err.close()
ip = out.read().strip()
print ip
1 có thể được thay thế bằng bất kỳ trong số này -
import os
iN, out, err = os.popen3('curl ipinfo.io/ip')
iN.close() ; err.close()
ip = out.read().strip()
print ip
2,
import os
iN, out, err = os.popen3('curl ipinfo.io/ip')
iN.close() ; err.close()
ip = out.read().strip()
print ip
3,
import os
iN, out, err = os.popen3('curl ipinfo.io/ip')
iN.close() ; err.close()
ip = out.read().strip()
print ip
4,
import os
iN, out, err = os.popen3('curl ipinfo.io/ip')
iN.close() ; err.close()
ip = out.read().strip()
print ip
5,
import os
iN, out, err = os.popen3('curl ipinfo.io/ip')
iN.close() ; err.close()
ip = out.read().strip()
print ip
6.GET request on
import os
ip = os.popen('wget -qO- http://ipecho.net/plain ; echo').readlines(-1)[0].strip()
print ip
9
to get location information for a particular IP address.
import os
iN, out, err = os.popen3('curl ipinfo.io/ip')
iN.close() ; err.close()
ip = out.read().strip()
print ip
0 is replaced by the IP address and
import os
iN, out, err = os.popen3('curl ipinfo.io/ip')
iN.close() ; err.close()
ip = out.read().strip()
print ip
1 can be replaced with any of these –
import os
iN, out, err = os.popen3('curl ipinfo.io/ip')
iN.close() ; err.close()
ip = out.read().strip()
print ip
2,
import os
iN, out, err = os.popen3('curl ipinfo.io/ip')
iN.close() ; err.close()
ip = out.read().strip()
print ip
3,
import os
iN, out, err = os.popen3('curl ipinfo.io/ip')
iN.close() ; err.close()
ip = out.read().strip()
print ip
4,
import os
iN, out, err = os.popen3('curl ipinfo.io/ip')
iN.close() ; err.close()
ip = out.read().strip()
print ip
5,
import os
iN, out, err = os.popen3('curl ipinfo.io/ip')
iN.close() ; err.close()
ip = out.read().strip()
print ip
6.

Chức năng này gọi chức năng

import os
ip = os.popen('wget -qO- http://ipecho.net/plain ; echo').readlines(-1)[0].strip()
print ip
1 để lấy địa chỉ IP và sau đó đưa ra yêu cầu nhận trên URL với địa chỉ IP. API này trả về phản hồi JSON trông như thế này:GET request on the URL with the IP address. This API returns a JSON response that looks like this:

{
    "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"
}

Chúng tôi nhận được rất nhiều dữ liệu trong phản hồi. Bạn có thể sử dụng bất cứ điều gì hoạt động cho bạn. Đối với hướng dẫn này, chúng tôi sẽ sử dụng & nbsp; ________ 28,

import os
iN, out, err = os.popen3('curl ipinfo.io/ip')
iN.close() ; err.close()
ip = out.read().strip()
print ip
9 và
import os
ip = os.popen('dig +short myip.opendns.com @resolver1.opendns.com').readlines(-1)[0].strip()
print ip
0. Đó là lý do tại sao chúng tôi đã tạo ra một từ điển gọi là
import os
ip = os.popen('dig +short myip.opendns.com @resolver1.opendns.com').readlines(-1)[0].strip()
print ip
1 và lưu trữ tất cả dữ liệu bên trong nó và trả về như nhau.
import os
ip = os.popen('dig +short myip.opendns.com @resolver1.opendns.com').readlines(-1)[0].strip()
print ip
0
. That's why we created a dictionary called
import os
ip = os.popen('dig +short myip.opendns.com @resolver1.opendns.com').readlines(-1)[0].strip()
print ip
1
and stored all the data inside it and returned the same.

Cuối cùng, chúng tôi gọi hàm

import os
ip = os.popen('wget -qO- http://ipecho.net/plain ; echo').readlines(-1)[0].strip()
print ip
2 và in đầu ra. Đầu ra của chúng tôi sẽ trông như thế này:

{
  "ip": "117.214.109.137", 
  "city": "Gaya", 
  "region": "Bihar", 
  "country": "India"
}

Sự kết luận

Trong bài viết này, chúng tôi đã học cách chúng tôi có thể tương tác với các dịch vụ web để lấy thông tin vị trí cho một địa chỉ IP cụ thể.

Cảm ơn vì đã đọc! Để biết thêm các bài viết như vậy, hãy kiểm tra blog của tôi, iead.



Học mã miễn phí. Chương trình giảng dạy nguồn mở của Freecodecamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu

Địa chỉ IP công khai của tôi là gì?

Đây là cách tìm địa chỉ IP trên điện thoại Android: Truy cập cài đặt điện thoại của bạn. Chọn ra về thiết bị.Tại đây bạn có thể tìm thấy thông tin về thiết bị của mình, bao gồm cả địa chỉ IP.Go to your phone's settings. Select “About device.” Tap on “Status.” Here you can find information about your device, including the IP address.

Ifconfig có cho IP công cộng không?

Lệnh IFCONFIG hiển thị địa chỉ phần cứng (HWADDR) và địa chỉ mạng (INET ADDR) cho Ethernet hoặc kết nối WiFi của bạn.Lệnh IFConfig không hiển thị địa chỉ IP công khai của bạn (nếu công khai và riêng tư là khác nhau).ifconfig command don't show your public IP address(if public and private are different).

Làm cách nào để kiểm tra IP công khai của tôi với CMD?

Tìm địa chỉ IP của bạn trên Windows 10: Sử dụng dấu nhắc lệnh..
Mở dấu nhắc lệnh.một.Nhấp vào biểu tượng bắt đầu, gõ lời nhắc lệnh vào thanh tìm kiếm và nhấn nhấp vào biểu tượng nhắc lệnh ..
Nhập ipconfig/tất cả và nhấn enter ..
Địa chỉ IP sẽ hiển thị cùng với các chi tiết LAN khác ..