JĘZYK PYTHON - NARZĘDZIE DLA KAŻDEGO NAUKOWCA. Marcin Lewandowski [ mlew@ippt.gov.pl ]

Podobne dokumenty
Stos TCP/IP. Warstwa aplikacji cz.2

1. Model klient-serwer

Zaawansowany kurs języka Python

Systemy internetowe. Wykład 5 Architektura WWW. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

Protokół HTTP. 1. Protokół HTTP, usługi www, model request-response (żądanie-odpowiedź), przekazywanie argumentów, AJAX.

Wykład 3 / Wykład 4. Na podstawie CCNA Exploration Moduł 3 streszczenie Dr inż. Robert Banasiak

Zaawansowany kurs języka Python

Programowanie Sieciowe 1

MODEL WARSTWOWY PROTOKOŁY TCP/IP

Programowanie współbieżne i rozproszone

Plan wykładu. 1. Protokół FTP. 2. Protokół HTTP, usługi www, model request-response (żądanie-odpowiedź), przekazywanie argumentów, AJAX.

Sieci komputerowe Warstwa aplikacji

Programowanie w Internecie

Wybrane działy Informatyki Stosowanej

Stos protokołów TCP/IP (ang. Transmission Control Protocol/Internet Protocol)

Sieci komputerowe. Wykład 7: Transport: protokół TCP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Sieci komputerowe. Wykład 8: Warstwa zastosowań: FTP i HTTP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Programowanie sieciowe

TCP/IP. Warstwa aplikacji. mgr inż. Krzysztof Szałajko

Protokoły internetowe

PROTOKOŁY WARSTWY TRANSPORTOWEJ

Application Layer Functionality and Protocols

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Kierunek: Automatyka i Robotyka Studia stacjonarne I stopnia: rok I, semestr II

Sieci komputerowe. Wykład dla studentów Informatyki Stosowanej i Fizyki Komputerowej UJ 2007/2008. Michał Cieśla

TIN Techniki Internetowe zima

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

TIN Techniki Internetowe zima

Studium przypadku Case Study CCNA2-ROUTING. Warianty projektów

Laboratorium - Poznawanie FTP

FTP File Transfer Protocol

Moduł Ethernetowy. instrukcja obsługi. Spis treści

Apache. Apache serwer WWW

Apache serwer WWW. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Instrukcja obsługi serwera FTP v

Adresy URL. Zaawansowane technologie Javy 2019

Programowanie rozproszone w języku Java

Problemy techniczne SQL Server. Jak odblokować porty na komputerze-serwerze, aby umożliwić pracę w sieci?

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 14 Protokoły sieciowe

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne

Komunikacja z użyciem gniazd aplikacje klient-serwer

Wykład 5: Najważniejsze usługi sieciowe: DNS, SSH, HTTP, . A. Kisiel,Protokoły DNS, SSH, HTTP,

Problemy techniczne SQL Server

Projekt e-deklaracje 2

Technologie internetowe

TIN Techniki Internetowe zima

Sieci komputerowe Wykład dla studentów Informatyki Stosowanej studia niestacjonarne

systemów intra- i internetowych Platformy softwarowe dla rozwoju Architektura Internetu (2) Plan prezentacji: Architektura Internetu (1)

Instrukcja do laboratorium Systemów Operacyjnych. (semestr drugi)

Moduł Ethernetowy EL-ETH. Instrukcja obsługi

TRX API opis funkcji interfejsu

Lab5 - Badanie protokołów pocztowych

Ko n f i gura cja p ra cy V ISO z bazą SQL S e rve r

Sieci komputerowe. Zajęcia 3 c.d. Warstwa transportu, protokoły UDP, ICMP

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Dostęp zdalny

Technologie sieciowe Sprawozdanie z labolatorium. Lista 5

System operacyjny UNIX Internet. mgr Michał Popławski, WFAiIS

Aplikacje WWW Wprowadzenie

Architektura aplikacji sieciowych. Architektura klient-serwer

Mechanizmy pracy równoległej. Jarosław Kuchta

Sieci komputerowe. Wykład 5: Warstwa transportowa: TCP i UDP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Instytut Teleinformatyki

Serwer SSH. Wprowadzenie do serwera SSH Instalacja i konfiguracja Zarządzanie kluczami

Kurs Wizualizacja z WinCC SCADA - Zaawansowany. Spis treści. Dzień 1. I VBS w WinCC podstawy programowania (zmienne, instrukcje, pętle) (wersja 1410)

Plan wykładu. 1. Sieć komputerowa 2. Rodzaje sieci 3. Topologie sieci 4. Karta sieciowa 5. Protokoły używane w sieciach LAN 6.

Model warstwowy Warstwa fizyczna Warstwa łacza danych Warstwa sieciowa Warstwa transportowa Warstwa aplikacj. Protokoły sieciowe

Protokoły komunikacyjne

Laboratorium nr 4 - Badanie protokołów WWW

Sprawozdanie. (notatki) Sieci komputerowe i bazy danych. Laboratorium nr.3 Temat: Zastosowanie protokołów przesyłania plików

Bazy Danych i Usługi Sieciowe

INSTYTUT IMMUNOLOGII I TERAPII DOŚWIADCZALNEJ im. Ludwika Hirszfelda Polska Akademia Nauk

Sieci komputerowe i bazy danych

Qt in Education. Sieć I drukowanie

Programowanie przy użyciu gniazdek

Sieci Komputerowe i Bazy Danych

Politechnika Śląska w Gliwicach Instytut Automatyki 2005/2006

Programowanie Sieciowe 2 Protokoły komunikacyjne: FTP

Politechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej

GSM/GPRS w przemyśle. Cezary Ziółkowski

Sieci równorzędne, oraz klient - serwer

FTP co to takiego? FTP File Transfer Protocol (Protokół Przesyłania Plików) RFC 114,959

Linux -- u mnie działa!

Protokół HTTP 1.1 *) Wprowadzenie. Jarek Durak. rfc2616 źródło

Pracownia internetowa w ka dej szkole (edycja 2004)

I.Wojnicki, Tech.Inter.

Platformy Programistyczne Zagadnienia sieciowe i wątki

PODSTAWOWA OBSŁUGA PROGRAMU PROGRAMU PACKET TRACER TRYB REAL TIME

1. W protokole http w ogólnym przypadku elementy odpowiedzi mają: a) Postać tekstu b) Postać HTML c) Zarówno a i b 2. W usłudze DNS odpowiedź

I.Wojnicki, Tech.Inter.

Podstawy Informatyki. Wykład 4 Komendy UNIXa, cd

ZiMSK. Konsola, TELNET, SSH 1

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Kierunek: Automatyka i Robotyka Studia stacjonarne I stopnia: rok I, semestr II

Laboratorium - Przechwytywanie i badanie datagramów DNS w programie Wireshark

Gniazda BSD. Procesy w środowisku sieciowym. Gniazda podstawowe funkcje dla serwera. Gniazda podstawowe funkcje dla klienta

Laboratorium 3.4.3: Usługi i protokoły

Plan całości wykładu. Warstwa łącza i sieci lokalne

Sprawozdanie Sieci komputerowe i bazy danych Laboratorium nr 4

Kurs języka Python. Wykład 14. Marcin Młotkowski. 25 stycznia Python i Apache Pythonowe platformy aplikacyjne. Dystrybucja aplikacji w U*IX

Projektowanie oprogramowania systemów KOMUNIKACJA SIECIOWA I SYSTEMY RPC

Monitorowanie Sieci nonblocking content packet filtering

Sprawozdanie Sieci komputerowe i bazy danych Laboratorium nr 4 Wojciech Kaczmarski

Transkrypt:

JĘZYK PYTHON - NARZĘDZIE DLA KAŻDEGO NAUKOWCA Marcin Lewandowski [ mlew@ippt.gov.pl ]

PROGRAMOWANIE SIECIOWE 2

TCP/IP = UDP + TCP TCP/IP składa się z dwóch podstawowych protokołów: TCP i UDP. TCP jest protokołem połączeniowym z zapewnieniem poprawności przesyłanych danych UDP jest protokołem niższego poziomu bezpołączeniowym, który nie gwarantuje dotarcia danych do adresata Większość protokołów wyższego poziomu opiera się na TCP Oba protokoły są obsługiwane za pomocą interfejsu programistycznego zwanego socket. Socket to logiczny obiekt plikowy, który zapewnia komunikację (pozwala na przyjmowanie połączeń przychodzących, nawiązywanie połączeń wychodzących, i przekazywanie danych). Komputer przyjmujący połączenie przez socket (tzw. serwer) musi związać socket do określonego portu. Port jest 16-bit numerem (0 65535), który jest używany przez system operacyjny do zarządzania połączeniami klient-serwer. Porty 0 1023 są zarezerwowane do obsługi znanych protokołów sieciowych (np. 80-HTTP, 23-Telnet) pełna lista: http://www.iana.org/assignments/port-numbers 3

TCI i UDP przez socket TCP UCP Na podstawie: David M. Beazley, Python Essential Reference, Pearson Education, 2009 4

Literatura uzupełniającą W. Richard Stevens: Unix Network Programming, Volume 1: The Sockets Networking API, Prentice Hall, 2003. UNIX Network Programming, Volume 2: Interprocess Communications, Prentice Hall, 1998. TCP/IP Illustrated, Vol. 1: The Protocols, Addison- Wesley, 1994 TCP/IP Illustrated, Vol. 2: The Implementation, Addison-Wesley, 1995 TCP/IP Illustrated, Vol. 3: TCP for Transactions, HTTP, NNTP, and the UNIX Domain Protocols, Addison- Wesley, 1996 5

Python moduły sieciowe Nazwa modułu socket, ssl socketserver http.server Email urllib.request, urllib.parse, urllib.error ftplib, poplib, imaplib, nntplib, smtplib, telnetlib xmlrpc.client, xmlrpc.server cgi, cgitb asyncore, asynchat Opis Niskopoziomowa obsługa komunikacji TCP/IP socket i SSL dla socket Framework dla budowy usług serwerów Serwer HTTP Obsługa Email i MIME Klient WWW Moduły klientów dla różnych protokołów XML-RPC klient i serwer Common Gateway Interface interfejs do wywoływania skryptów przez serwer HTTP Asynchroniczna obsługa komunikacji sieciowej 6

TCP serwer czasu from socket import * import time s = socket(af_inet, SOCK_STREAM) # Create a TCP socket s.bind(('',8888)) # Bind to port 8888 s.listen(5) # Listen, upto than 5 pending connections while True: client,addr = s.accept() # Get a connection print("got a connection from %s" % str(addr)) timestr = time.ctime(time.time()) + "\r\n" client.send(timestr.encode('ascii')) client.close() 7

TCP client do serwera czasu # Time client program from socket import * s = socket(af_inet,sock_stream) # Create a TCP socket s.connect(('localhost', 8888)) # Connect to the server tm = s.recv(1024) # Receive upto 1024 bytes s.close() print("the time is %s" % tm.decode('ascii')) 8

Moduł ftplib >>> from ftplib import FTP >>> ftp = FTP('ftp.cwi.nl') # connect to host, default port >>> ftp.login() # user anonymous, passwd anonymous@ >>> ftp.retrlines('list') # list directory contents total 24418 drwxrwsr-x 5 ftp-usr pdmaint 1536 Mar 20 09:48. dr-xr-srwt 105 ftp-usr pdmaint 1536 Mar 21 14:32.. -rw-r--r-- 1 ftp-usr pdmaint 5305 Mar 20 09:48 INDEX... >>> ftp.retrbinary('retr README', open('readme', 'wb').write) '226 Transfer complete.' >>> ftp.quit() 9

Moduł ftplib FTP.set_debuglevel(level) ustawia poziom debuggowania () dla danej instancji. 0 (domyślnie) nie produkuje żadnej informacji debuggowej 1 produkuje podstawową informację o połączeniu (~jedną linię dla każdego żądania) 2 i więcej produkuje duużo informacji 10

Moduły http Moduł http zapewnia obsługę protokołu HTTP (dla klientów i serwerów), w tym zarządzanie stanem (cookies) Podstawowe metody HTTP: GET pobierz dokument POST prześlij dane z formularza HEAD pobierz nagłówek PUT załaduj dane na serwer Uwaga na zmiany: Python 2: httplib -> Python 3: http.client Python 2: BaseHTTPServer -> Python 3: http.server 11

Moduł urllib Wysokopoziomowy moduł do realizacji interakcji z serwerami HTTP, FTP, plikami lokalnymi Typowe zastosowania: scraping automatyzacja pobierania danych z sieci Web crawlers przeszukiwacze sieci Proxies 12

urllib import urllib URL = 'http://www.ippt.gov.pl/index.htm' fhand = urllib.urlopen(url) for line in fhand: print line.strip() 13

Yahoo! Weather RSS Feed Dane o prognozie pogody dla Warszawy z: Yahoo! Weather RSS Feed Dane na stronie: http://weather.yahoo.com/poland/masovian/ warsaw-523920 Dokumentacja RSSa: http://developer.yahoo.com/weather 14