(Crear no es fácil, recuerda darle like)
En la era de la información, a menudo necesitamos obtener direcciones IP de URL. Busqué una manera de lograrlo en Internet durante más de diez minutos, pero no podía ejecutarse o estaba demasiado hinchado. Así que tuve un destello de inspiración y pensé en un método simple.
Dado que la función gethostbyname del módulo de socket solo puede recibir el nombre de host, primero escriba una función para obtener el nombre de host de la URL.
Una URL normal siempre consta de varias partes:
<protocolo>://<tipo de servidor> .<nombre de dominio>/<directorio>/<nombre de archivo>
Como https://www.baidu.com/ , https://www.csdn.net/
Y el nombre de host que necesitamos es la cadena en el medio:
<tipo de servidor> .<nombre de dominio>
A saber, www.baidu.com , www.csdn.net
Se puede encontrar que el nombre de host está entre el primer "//" y el primer "/". A partir de esto, podemos escribir fácilmente una función para separar el nombre de host de la URL.
def gethost(url):
output = ''
if '//' in url:
output = url.split('//')[1]
if '/' in output:
output = output.split('/')[0]
elif '/' in url:
output = url.split('/')[0]
return output
Esta es una función simple que solo funciona como se esperaba si la URL de entrada es relativamente normal. Pero es lo suficientemente bueno para las URL copiadas y pegadas desde el navegador. Encapsúlelo si es necesario, o puede separar los nombres de host mediante expresiones regulares.
Luego traiga el valor devuelto a gethostbyname para obtener el resultado.
El procedimiento completo es el siguiente:
from socket import gethostbyname
def gethost(url):
output = ''
if '//' in url:
output = url.split('//')[1]
if '/' in output:
output = output.split('/')[0]
elif '/' in url:
output = url.split('/')[0]
return output
def getip(url):
return gethostbyname(gethost(url))
Puede obtener la ip de la URL llamando a la función getip .
La prueba es la siguiente:
url = (
'https://www.baidu.com/',
'https://www.csdn.net/',
'https://mirrors.tuna.tsinghua.edu.cn/#'
)
for i in url:
print(i, getip(i))
resultado:
Referencias:
Enciclopedia Baidu - Verificación