wprowadzanie poprawnego adresu WWW

0

Pracuję nad skryptem, w którym to user musi podać adres www wybranej strony. Chcę zapobiec sytuacji typu użytkownik wprowadził adres "lol troll xD". Wymyśliłem więc taką pętlę. Co o tym sądzicie?

while True:
   adresHosta = input("Podaj adres www: ")
   if sprawdzWWW(adresHosta):
       break

def sprawdzWWW(adresHosta):
   try:
       host = socket.gethostbyname(adresHosta)
       return host
   except:
       print("WTF?")
       return False

1

Nie do końca rozumiem co próbujesz osiągnąć. Ja bym najpierw wsadził tutaj jakiegoś regexa do zmatchowania, czy podany input jest urlem tzn czy jest podany np url extension.

0

Chodzi o upewnienie się, że podany adres www faktycznie działa. Wyrażenie regularne nie pasuje.

2

IMO na początku pasuje, bo socket.gethostbyname zadziała Ci przy stackoverflow.com / www.stackoverflow.com ale przy stackoverflow już nie. Dlatego zaproponowałem najpierw przepuścić to przez regexa a potem dopiero przez socketa.

0

Czyli mix, który ma sens. Bo jak samym regex wykryć 4programLOLmers.net?
A sama pętla jest ok? To jest odpowiednik Repeat... Until.

1

żaden regex, tylko url parser https://docs.python.org/3/library/urllib.parse.html

2 może strzel HTTP GET i jeżeli przejdzie, to jest ok.


w sumie to pewnie mógłbyś od razu zrobić 2 bez sprawdzania czy url jest ok

ale z drugiej strony pytanie czy nie będzie to jakieś security issue - chyba nie.

1
kosmonauta80 napisał(a):

Pracuję nad skryptem, w którym to user musi podać adres www wybranej strony.

Jaki jest kontekst? W jakim celu ma podawać?

1 użytkowników online, w tym zalogowanych: 0, gości: 1