05
paź
2006
Przeczyłem troszkę tekstu nt tego języka i już napisałem pierwszy skrypt. Bez rewelacji, ale chodziło raczej o rozwiązanie pewnego problemu. Otóż mam w domu komputer, który pracuje jako serwer. Jednak ze względu na dynamiczne przydzielanie adresu IP nie mogę z niego korzystać tak jakbym chciał. Teraz przy każdym podłączeniu do internetu skrypt wysyła na moje konto u jednego z providerów mój adres IP.
CODE:
1 #!/usr/bin/python 2 import socket,ftplib,os 3 from ftplib import FTP 4 5 sc = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 6 sc.connect((’www.google.com‘, 80)) 7 sc.getpeername() # google’s IP and port 8 9 f=open(’index.html‘, ‘w‘) 10 value = sc.getsockname() 11 string = str(value) 12 f.write(string) 13 f.close() 14 15 def upload(ftp, file): 16 ext = os.path.splitext(file)[1] 17 if ext in (”.txt“,” .htm“, “.html“): 18 ftp.storlines(”STOR ” + file, open(file)) 19 else: 20 ftp.storbinary(”STOR ” + file, open(file, “rb“), 1024) 21 22 ftp = FTP(’FTP_HOST‘) 23 ftp.login(’FTP_USER‘,’FTP_PASSWORD‘) 24 25 upload(ftp, “index.html“) 26 27 ftp.retrlines(’LIST‘) 28 ftp.quit()
Opis działania:
- pobieranie potrzebnych bibliotek
- nawiązywanie połączenia za pomocą socketów
- otwieranie pliku index.html i zapisywanie w nim adresu IP
- definicja funkcji do uploadu pliku na serwer
- połączenie z serwerem FTP
- wysłanie pliku
- pobranie listy plików w katalogu
- zamknięcie wszystkich połączeń.
Dzięki temu po wejściu na odpowiednią stronę mogę zobaczyć jaki jest mój aktualny adres IP i połączyć się ze swoim komputerem.
Skrypt prymitywny, ale chodzi o sprawne działania :)
