• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

[python] Program sprawdzający poprawność IP

Fiszki IT
Fiszki IT
+1 głos
64 wizyt
pytanie zadane 18 kwietnia w Python przez New_programmer Początkujący (340 p.)

Cześć, potrzebuje pomocy przy tym zadaniu.

W zagadnieniach sieciowych jednym z elementarnych
zagadnień jest adres IP. W protokole IP w wersji czwartej są to 4
liczby rozdzielone kropkami, gdzie każda liczba mieści się w
przedziale 0 - 255. Np 10.13.0.255.
a. Na początku zostanie podana ilość przypadków testowych (‘i’).
Dla każdego ‘ i’:
b. Wczytaj adres IP ze standardowego wejścia
c. Dla każdego adresu wypisz “TAK” gdy adres jest poprawny,
bądź “NIE” gdy nie jest poprawny.
Przykładowe wejście:
5
abc.def.ghi.jkl
12.255.56.1
123.456.789.0
123.045.067.089
12.34.56 .1
Przykładowe wyjście:
NIE
TAK
NIE
NIE
NIE
Proszę nie używać funkcji do sprawdzania IP z bibliotek sieciowych!

Na ten moment mam coś takiego i nie wiem co dalej:

lst = []
n = int(input("Ile adresów chcesz sprawdzić?: "))

for i in range(0, n):
    ele = str(input())

    lst.extend(ele)



def isgoodip(s):
    pieces = s.split('.')
    if len(pieces) != 4:
        return False
    try:
        return all(0 <= int(p) < 256 for p in pieces)
    except ValueError:
        return False

1 odpowiedź

+2 głosów
odpowiedź 18 kwietnia przez reaktywny Nałogowiec (25,440 p.)
wybrane 18 kwietnia przez New_programmer
 
Najlepsza
    ele = str(input())
 
    lst.extend(ele)

zamieniłbym na:

lst.append(input("Podaj IP: \n"))

Musisz jeszcze wyświetlić TAK lub NIE w odpowiedniej sytuacji.

komentarz 18 kwietnia przez reaktywny Nałogowiec (25,440 p.)
edycja 18 kwietnia przez reaktywny
lst = []
n = int(input("Ile adresów chcesz sprawdzić?: "))

for i in range(n):
    lst.append(input("IP? :"))

def is_good_ip(s):
    pieces = s.strip().split('.')
    if len(pieces) != 4:
        print("NIE")
        return
    try:
        if all(0 <= int(p) <= 255 for p in pieces):
            print("TAK")
        else:
            print("NIE")
    except ValueError:
        print("NIE")


for s in lst:
    print(s) # to dla sprawdzenie, można usunąć tę linię.
    is_good_ip(s)

 

Ile adresów chcesz sprawdzić?: 4
IP? :127.0.0.1
IP? :123.123.123.123
IP? :12.2555.23.2
IP? :0.0.1.sfs
127.0.0.1
TAK
123.123.123.123
TAK
12.2555.23.2
NIE
0.0.1.sfs
NIE

 

Podobne pytania

0 głosów
0 odpowiedzi 55 wizyt
pytanie zadane 2 września 2020 w Python przez Damian2102 Nowicjusz (150 p.)
0 głosów
4 odpowiedzi 1,749 wizyt
pytanie zadane 21 stycznia 2016 w Java przez mikus Nowicjusz (120 p.)
0 głosów
1 odpowiedź 400 wizyt
pytanie zadane 3 listopada 2017 w Python przez prominepl Bywalec (2,440 p.)
Porady nie od parady
Zadając pytanie postaraj się o poprawną pisownię i czytelne formatowanie tekstu.Kompozycja

84,745 zapytań

133,550 odpowiedzi

295,964 komentarzy

56,007 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...