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.
import socket,ftplib,os from ftplib import FTP sc = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sc.connect((’www.google.com‘, 80)) sc.getpeername() # google’s IP and port f=open(’index.html‘, ‘w‘) value = sc.getsockname() string = str(value) f.write(string) f.close() def upload(ftp, file): ext = os.path.splitext(file)[1] if ext in (”.txt“,” .htm“, “.html“): ftp.storlines(”STOR ” + file, open(file)) else: ftp.storbinary(”STOR ” + file, open(file, “rb“), 1024) ftp = FTP(’FTP_HOST‘) ftp.login(’FTP_USER‘,’FTP_PASSWORD‘) upload(ftp, “index.html“) ftp.retrlines(’LIST‘) 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 :)