هل تبحث عن عنوان IP عام في بايثون؟
-
03-07-2019 - |
سؤال
كيف يمكنني العثور على IP المواجه للعامة لشبكتي في Python؟
المحلول
وهذا سوف تجلب عنوان IP الخاص بك عن بعد
import urllib
ip = urllib.urlopen('http://automation.whatismyip.com/n09230945.asp').read()
إذا كنت لا تريد أن تعتمد على شخص آخر، وبعد ذلك فقط تحميل شيء من هذا القبيل النصي PHP:
<?php echo $_SERVER['REMOTE_ADDR']; ?>
ووتغيير URL في بيثون أو إذا كنت تفضل ASP:
<%
Dim UserIPAddress
UserIPAddress = Request.ServerVariables("REMOTE_ADDR")
%>
ملحوظة: أنا لا أعرف ASP، لكني أحسب أنه قد يكون من المفيد أن يكون هنا حتى أنا googled
نصائح أخرى
وwhatismyip.org هو أفضل ... وقذفات لتوه الملكية الفكرية كما نص عادي مع أي حماقة غريبة.
import urllib
ip = urllib.urlopen('http://whatismyip.org').read()
ولكن نعم، أنه من المستحيل أن تفعل ذلك بسهولة دون الاعتماد على شيء خارج الشبكة نفسها.
https://api.ipify.org/؟format=json مستقيم جدا إلى الأمام
ويمكن تحليل فقط عن طريق تشغيل requests.get("https://api.ipify.org/?format=json").json()['ip']
إذا كنت لا تمانع في استخدام الشتائم، فحاول:
اربطها بأشياء urllib المعتادة كما أظهر الآخرون.
هناك ايضا:
import urllib2
text = urllib2.urlopen('http://www.whatismyip.org').read()
urlRE=re.findall('[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}',text)
urlRE
['146.148.123.123']
ومحاولة وضع كل ما "findmyipsite" يمكنك أن تجد في قائمة وبالتكرار من خلالها للمقارنة. هذا واحد يبدو للعمل بشكل جيد.
import requests
r = requests.get(r'http://jsonip.com')
# r = requests.get(r'https://ifconfig.co/json')
ip= r.json()['ip']
print('Your IP is {}'.format(ip))
وهذا هو بسيط ك
>>> import urllib
>>> urllib.urlopen('http://icanhazip.com/').read().strip('\n')
'xx.xx.xx.xx'