2017-09-21 4 views
0

HILFE! Ich bin blöd fest und kann nicht finden wie das geht. Auch weil ich ein Anfänger in Python bin.Verwenden von IP-Adresse und Aufteilen in Python

Ich brauche Hilfe mit diesem Skript in Python.

  1. Wie kann ich eine IP-Adresse in einem Python-Skript verwenden?
  2. Wie kann ich geteilt eine IP-Adresse basierend auf einem Bindestrich (-)

ich diese

#code 
a = input("Enter ip address: ") 
print 'edit "ip-' + str(a) + '"\n', 

# Shell 

Enter ip address:10.203.1.10 
# output 
edit "ip-10.203.1.10" 

Wie eine IP-Adresse gespeichert werden können, tun möchte? Wenn ich die Dezimalpunkte addiere, kann ich einen Fehler erhalten Ist dort ein Modul oder ein Paket oder irgendein Geheimnis. Kann die Split-Methode so funktionieren x.split ("-") zu teilen und IP-Adresse Wie speichern Sie die Werte dann (a, b)? so etwas wie zu haben.

Eingang

10.228.50.88-10.228.50.91

Ausgabe

bearbeiten "ipr-10.228.50.88-10.228.50.91"

Settyps IPRange

Set Start-IP 10.228.50.88

set Ende-IP 10.228.50.91

Wirklich appreciate jede Hilfe oder jemand, der mich in die richtige Richtung zeigen kann.

+0

wo do u die IP speichern? – Sumit

Antwort

0

ich unten Skript hoffen, dass Sie helfen:

a = raw_input("Enter ip address: ") 

print 'edit "ip-' + str(a) + '"\n' 

if '-' in a: 
    ips = a.split('-') 

    print ('set type iprange') 

    print ('set start-ip '+ips[0]) 
    print 'set end-ip '+ips[1] 
+0

Vielen Dank! Dieser Split wurde hinzugefügt! –

0

Das Problem ist, dass Sie verwenden input, während diese auf Python läuft 2. Sie erwarten, dass deren Rückgabetyp eine Zeichenfolge sein, aber es ist nicht. In Python 2 versucht input tatsächlich parsen und führen Sie die Eingabe, als ob es Python-Code war. Offensichtlich ist 192.168.0.0 oder eine beliebige IP-Adresse ein ungültiger Python-Code, daher erhalten Sie einen Fehler.

Um dies zu lösen, verwenden raw_input statt input. Dann würde a der seinen Typs str, das heißt, eine regelmäßige Zeichenfolge (es gibt nichts Besonderes an IP-Adressen), so dass Sie a.split verwenden können, a.join und andere Methoden der str Klasse.

+0

Perfekt! Das löst es! –

0

Per https://docs.python.org/2/library/functions.html#input, Eingang dies tut: eval(raw_input(prompt)). Das Eval bedeutet, dass es versucht, die Eingabe zu übernehmen und sie als Python-Code zu interpretieren, weshalb Sie Syntaxfehler bekommen. Es sagt auch: Erwägen Sie, die raw_input() Funktion für allgemeine Eingabe von Benutzern zu verwenden, die wie das, was Sie suchen, klingt. Auch ein kurzer Test und aus dem Dokument Python3 sieht es so aus, als ob die Funktion input() anders ist und sich mehr wie die Funktion raw_input() verhält. Schnelltests:

Python 3.6.2:

>>> a = input("Enter ip address: ") 
Enter ip address: 10.1.1.1 
>>> a 
'10.1.1.1' 

Python Python 2.7.13:

>>> a = input("Enter ip address: ") 
Enter ip address: 10.1.1.1 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "<string>", line 1 
    10.1.1.1 
    ^
SyntaxError: invalid syntax 
Verwandte Themen