UPnP

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2019. június 25-én felülvizsgált verziótól ; az ellenőrzések 5 szerkesztést igényelnek .

Az Universal Plug and Play (UPnP) egy olyan architektúra, amely többrétegű kapcsolatokat biztosít a gazdagépek között . Biztosítja a gazdagépek egymáshoz való automatikus kapcsolását és közös munkájukat. TCP /IP , HTTP , XML és más nyílt internetes szabványokon alapul.

UPnP fórum

Az Universal Plug and Play Forum (UPnP Forum) egy nyílt iparági szövetség, amelyet 1999 júniusában hoztak létre, hogy olyan szabványokat dolgozzanak ki az UPnP technológiához, amelyek megkönnyítenék az intelligens eszközök otthoni és végső soron vállalati hálózatok közötti csatlakoztatását. A fórum tagjai UPnP eszközvezérlő protokollokat és szolgáltatásvezérlő protokollokat hoznak létre és tesznek közzé.

2001. június elején az UPnP Fórumban több mint 350 vállalat vett részt. A fórumot az UPnP Irányító Bizottsága irányítja, amely 22 tagból áll. Ezen kívül van egy Technikai Bizottság, egy Marketing Bizottság és különféle munkabizottságok, amelyek meghatározott készülékkategóriákkal foglalkoznak. A fórum tagjainak listája, valamint a csatlakozás módjára vonatkozó információk elérhetők a fórum honlapján.

Technikai elemek

Az UPnP az otthoni hálózatokat, a kisvállalati hálózatokat és más kis méretű hálózatokat célozza meg. Adatcserét biztosít bármely két olyan eszköz között, amelyek bármely hálózati vezérlőeszköz vezérlése alatt állnak. Az UPnP az operációs rendszertől, a fizikai adathordozótól vagy a használt programozási nyelvtől függetlenül működik.

Az UPnP támogatja a nulla konfigurációjú hálózatokat és az automatikus eszközkeresést: az eszköz dinamikusan csatlakozik a hálózathoz, IP-címet kap, kérésre bejelenti képességeit, valamint információkat gyűjt más eszközök jelenlétéről és képességeiről. A DHCP- és DNS -kiszolgálók jelenléte nem kötelező; csak akkor használhatók, ha online elérhetőek. Sőt, a készülék automatikusan ki tud lépni a hálózatból, és ez nem okoz fennakadást a működésében.

Az UPnP technológia az Internet fejlesztésének minden tapasztalatára támaszkodik, aktívan használja számos összetevőjét, beleértve az IP -t , a TCP -t , az UDP -t , a HTTP -t és az XML -t . Az UPnP fejlesztési projekt az érdekelt vállalatok többoldalú együttműködését biztosítja a szabványos eszközvezérlő protokollok (DCP) létrehozása terén. Az internethez hasonlóan ezek a szabványok is XML-ben írt, HTTP-n keresztül kommunikáló deklaratív vezetékes hozzáférési protokollokon fognak alapulni.

Port továbbítás

Az UPnP lehetővé teszi a portok programozott továbbítását. Ezt használják olyan alkalmazások, mint a Skype, μTorrent. Az alábbiakban egy példa látható egy OLE objektum használatára egy ilyen átirányítás megvalósítására (a kód a Delphi 7-ben íródott, amelyet a Windows XP Service Pack 2 és újabb verziói támogatnak).

használ ..., WinSock , ComObj , ActiveX .... //A Delphi legújabb verzióihoz adja hozzá az "OleAuto"-t a "ComObj" egység helyett. ... függvény GetLocalIP : String ; //Helyi IP-cím lekérése const WSVer = $101 ; var wsaData : TWSAData ; P : PHostEnt ; Buf : Char tömb [ 0 .. 127 ] ; _ kezdődik Eredmény := '' ; ha WSAStartup ( WSVer , wsaData ) = 0 , akkor kezdődik , ha GetHostName ( @Buf , 128 ) = 0 , akkor kezdődik P : = GetHostByName ( @Buf ) ; if P <> nil then Eredmény := iNet_ntoa ( PInAddr ( p ^. h_addr_list ^ ) ^ ) ; vége ; WSACleanup ; vége ; vége ; eljárás AddUPnPEntry ( Port : Integer ; const Név : ShortString ; LAN_IP : string ) ; var Nat : Variant ; Portok : Variant ; kezdődjön ha NEM ( LAN_IP = '127.0.0.1' ) , majd kezdje try Nat := CreateOleObject ( 'HNetCfg.NATUPnP' ) ; Portok := Nat . StaticPortMappingCollection ; ha nem VarIsClear ( Ports ) then begin //csináljon valamit //ShowMessage(IntToStr(Ports.Count)); portok . Add ( Port , 'TCP' , Port , LAN_IP , Igaz , név ) ; vége ; kivéve e : Kivétel a ShowMessage - nél ( 'Hiba történt az UPnP portok hozzáadásakor ' + e . Üzenet ) ; vége ; vége ; vége ; eljárás RemoveUPnPEntry ( Port : Integer ) ; var Nat : Variant ; Portok : Variant ; start try Nat := CreateOleObject ( 'HNetCfg.NATUPnP' ) ; Portok := Nat . StaticPortMappingCollection ; portok . Eltávolítás ( Port , 'TCP' ) ; kivéve a ShowMessage ( 'Hiba történt az UPnP portok eltávolításakor. ' + 'Kérjük, ellenőrizze, hogy az útválasztó támogatja-e az UPnP-t, és ' + 'engedélyezte-e vagy letiltotta-e az UPnP-t.' ) ; vége ; vége ; eljárás ListUPnPEntry ; var Nat : Variant ; Portok : Variant ; Enum : IEnumVARIANT ; MyPort : OLEVariant ; IntPort , ExtPort : Integer ; Leírás , Protokoll , IntClient , ExtIP : WideString ; Engedélyezve : Boolean ; iValue : LongWord ; start try Nat := CreateOleObject ( 'HNetCfg.NATUPnP' ) ; Portok := Nat . StaticPortMappingCollection ; ha nem VarIsClear ( Portok ) , akkor kezdje az Enum := IUnknown ( Ports . _NewEnum ) mint IEnumVARIANT ; míg Enum . Következő ( 1 , MyPort , iValue ) = S_OK do begin Desc := MyPort . Leírás ; Engedélyezve := MyPort . Engedélyezve ; ExtIP := Saját port . Külső IP-cím ; ExtPort := MyPort . Külső port ; IntClient := MyPort . InternalClient ; IntPort := MyPort . InternalPort ; Protokoll := Saját port . jegyzőkönyv ; 1. űrlap . Memo1 . Vonalak . Add ( Desc + ^ I + ^ I + IntToStr ( ExtPort ) + ^ I + Protokoll + ^ I + IntToStr ( IntPort ) + ^ I + IntClient ) ; vége ; vége ; kivéve a ShowMessage ( 'Hiba történt az UPnP portok felsorolásakor. Ellenőrizze, hogy az útválasztó támogatja-e az UPnP-t, és engedélyezve van-e az UPnP.' ) ; vége ; vége ; eljárás TForm1 . Button1Click ( Feladó : TObject ) ; begin AddUPnPEntry ( 8090 , 'MyProgram' , GetLocalIP ) ; //Portvég hozzáadása ; eljárás TForm1 . Button2Click ( Feladó : TObject ) ; begin RemoveUPnPEntry ( 8090 ) ; //Portvég törlése ; eljárás TForm1 . Button3Click ( Feladó : TObject ) ; start ListUPnPEntry ; //Frissítés vége ;

Ebben a példában a szolgáltatás neve „MyProgram” lett. A szolgáltatás neve tartalmazza a porttovábbítási program leírását.

Lásd még

Külső linkek