UPnP

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 25 iunie 2019; verificările necesită 5 modificări .

Universal Plug and Play (UPnP) este o arhitectură pentru conexiuni multistrat între gazde . Oferă conexiunea automată a gazdelor între ele și munca lor comună. Bazat pe TCP/IP , HTTP , XML și alte standarde de internet deschise.

Forum UPnP

Forumul Universal Plug and Play (Forumul UPnP) este o asociație industrială deschisă, formată în iunie 1999 pentru a dezvolta standarde pentru tehnologia UPnP care ar facilita conectarea dispozitivelor inteligente în rețelele de acasă și, eventual, în rețelele corporative. Membrii forumului creează și publică protocoale de control al dispozitivelor UPnP și protocoale de control al serviciilor.

La începutul lunii iunie 2001, Forumul UPnP includea peste 350 de companii. Forumul este gestionat de Comitetul Director al UPnP, care este format din 22 de membri. În plus, există un Comitet Tehnic, un Comitet de Marketing și diverse comitete de lucru care se ocupă de anumite categorii de dispozitive. Listele membrilor forumului, precum și informații despre cum să vă alăturați, sunt disponibile pe site-ul forumului.

Elemente tehnice

UPnP este destinat rețelelor de acasă, rețelelor de afaceri mici și altor rețele de dimensiuni mici. Oferă schimb de date între oricare două dispozitive care se află sub controlul oricărui dispozitiv de control al rețelei. UPnP funcționează indiferent de sistemul de operare, suportul fizic sau limbajul de programare utilizat.

UPnP acceptă rețele cu configurație zero și descoperirea automată a dispozitivelor: un dispozitiv se alătură în mod dinamic unei rețele, obține o adresă IP, își anunță capabilitățile la cerere și colectează informații despre prezența și capacitățile altor dispozitive. Prezența serverelor DHCP și DNS este opțională; pot fi utilizate numai dacă sunt disponibile online. Mai mult, dispozitivul se poate deconecta automat din rețea, iar acest lucru nu va duce la nicio întrerupere în funcționarea sa.

Tehnologia UPnP se bazează pe toată experiența dezvoltării Internetului, utilizând în mod activ multe dintre componentele sale, inclusiv IP , TCP , UDP , HTTP și XML . Proiectul de dezvoltare UPnP prevede cooperarea multilaterală a companiilor interesate în domeniul creării de protocoale standard de control al dispozitivelor (DCP). Ca și în cazul Internetului, aceste standarde se vor baza pe protocoale declarative de acces prin cablu scrise în XML și care comunică prin HTTP.

Redirecționare porturi

UPnP vă permite să redirecționați programatic porturile. Acesta este folosit de aplicații precum Skype, μTorrent. Mai jos este un exemplu de utilizare a unui obiect OLE pentru a implementa o astfel de redirecționare (codul este scris în Delphi 7, acceptat de Windows XP Service Pack 2 și o versiune ulterioară).

folosește ..., WinSock , ComObj , ActiveX .... //Pentru versiunile recente de Delphi, adăugați „OleAuto” în loc de unitatea „ComObj”. ... funcția GetLocalIP : String ; //Obțineți adresa IP locală const WSVer = $101 ; var wsaData : TWSAData ; P : PHostEnt ; Buf : matrice [ 0 .. 127 ] de Char ; începe Rezultatul := '' ; dacă WSAStartup ( WSVer , wsaData ) = 0 atunci începe dacă GetHostName ( @ Buf , 128 ) = 0 atunci începe P := GetHostByName ( @ Buf ) ; dacă P <> nil atunci Rezultat := iNet_ntoa ( PINAddr ( p ^. h_adr_list ^ ) ^ ) ; sfârşitul ; WSACleanup ; sfârşitul ; sfârşitul ; procedura AddUPnPEntry ( Port : Integer ; const Nume : ShortString ; LAN_IP : sir ) ; var Nat : Variant ; Porturi : Varianta ; începe dacă NU ( LAN_IP = '127.0.0.1' ) apoi începe try Nat := CreateOleObject ( 'HNetCfg.NATUPnP' ) ; Porturi := Nat . StaticPortMappingCollection ; dacă nu VarIsClear ( Ports ) atunci începe //fa ceva //ShowMessage(IntToStr(Ports.Count)); porturi . Adăugați ( Port , 'TCP' , Port , LAN_IP , True , nume ) ; sfârşitul ; cu excepția e : Exception do ShowMessage ( 'A apărut o eroare la adăugarea porturi UPnP.' + e . Mesaj ) ; sfârşitul ; sfârşitul ; sfârşitul ; procedura RemoveUPnPEntry ( Port : Integer ) ; var Nat : Variant ; Porturi : Varianta ; începeți încercați Nat := CreateOleObject ( 'HNetCfg.NATUPnP' ) ; Porturi := Nat . StaticPortMappingCollection ; porturi . Eliminare ( port , 'TCP' ) ; cu excepția ShowMessage ( 'A apărut o eroare la eliminarea porturilor UPnP. ' + 'Vă rugăm să verificați dacă routerul dvs. acceptă UPnP și dacă ' + 'are activat sau dezactivat UPnP.' ) ; sfârşitul ; sfârşitul ; procedura ListUPnPEntry ; var Nat : Variant ; Porturi : Varianta ; Enum : IEnumVARIANT ; MyPort : OLEVariant ; IntPort , ExtPort : Integer ; Desc , Protocol , IntClient , ExtIP : WideString ; Activat : Boolean ; iValue : LongWord ; începeți încercați Nat := CreateOleObject ( 'HNetCfg.NATUPnP' ) ; Porturi := Nat . StaticPortMappingCollection ; dacă nu VarIsClear ( Ports ) atunci începe Enum := IUnknown ( Ports . _NewEnum ) ca IEnumVARIANT ; în timp ce Enum . În continuare ( 1 , MyPort , iValue ) = S_OK nu începe Desc := MyPort . Descriere ; Activat := MyPort . Activat ; ExtIP := Portul meu . ExternalIPAddress ; ExtPort := MyPort . Port extern ; IntClient := MyPort . Client intern ; IntPort := MyPort . InternalPort ; Protocol := Portul meu . Protocol ; Formularul 1 . Memo1 . Linii . Adaugă ( Desc + ^ I + ^ I + IntToStr ( ExtPort ) + ^ I + Protocol + ^ I + IntToStr ( IntPort ) + ^ I + IntClient ) ; sfârşitul ; sfârşitul ; cu excepția ShowMessage ( „A apărut o eroare la listarea porturilor UPnP. Vă rugăm să verificați dacă routerul dumneavoastră acceptă UPnP și are UPnP activat.” ) ; sfârşitul ; sfârşitul ; procedura TForm1 . Button1Click ( Expeditor : TObject ) ; începe AddUPnPEntry ( 8090 , 'MyProgram' , GetLocalIP ) ; //Adăugați sfârșitul portului ; procedura TForm1 . Button2Click ( Expeditor : TObject ) ; începe RemoveUPnPEntry ( 8090 ) ; //Șterge sfârșitul portului ; procedura TForm1 . Button3Click ( Expeditor : TObject ) ; începe ListUPnPEntry ; //Update end ;

În acest exemplu, numele serviciului a fost setat la „MyProgram”. Numele serviciului conține o descriere a programului de redirecționare a portului.

Vezi și

Link- uri externe