UPnP

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 25.6.2019 tarkistetusta versiosta . tarkastukset vaativat 5 muokkausta .

Universal Plug and Play (UPnP) on arkkitehtuuri monikerroksisille yhteyksille isäntien välillä . Tarjoaa isäntien automaattisen yhteyden toisiinsa ja heidän yhteiseen työhönsä. Perustuu TCP/IP- , HTTP- , XML- ja muihin avoimiin Internet-standardeihin.

UPnP-foorumi

Universal Plug and Play Forum (UPnP Forum) on avoin toimialajärjestö, joka perustettiin kesäkuussa 1999 kehittämään standardeja UPnP-teknologialle, joka helpottaisi älylaitteiden yhdistämistä koti- ja lopulta yritysverkkoihin. Foorumin jäsenet luovat ja julkaisevat UPnP-laitteiden ohjausprotokollia ja palvelunohjausprotokollia.

Kesäkuun 2001 alussa UPnP-foorumiin kuului yli 350 yritystä. Foorumia johtaa UPnP:n ohjauskomitea, johon kuuluu 22 jäsentä. Lisäksi siellä on tekninen komitea, markkinointikomitea ja erilaisia ​​työvaliokuntaa, jotka käsittelevät tiettyjä laiteluokkia. Luettelot foorumin jäsenistä sekä ohjeet siihen liittymiseen ovat saatavilla foorumin verkkosivuilla.

Tekniset elementit

UPnP on suunnattu kotiverkkoihin, pienyritysverkkoihin ja muihin pienikokoisiin verkkoihin. Se tarjoaa tiedonsiirron minkä tahansa kahden laitteen välillä, jotka ovat minkä tahansa verkon ohjauslaitteen hallinnassa. UPnP toimii riippumatta käytetystä käyttöjärjestelmästä, fyysisestä mediasta tai ohjelmointikielestä.

UPnP tukee nollakonfiguraatioverkkoja ja automaattista laitehakua: laite liittyy dynaamisesti verkkoon, hankkii IP-osoitteen, ilmoittaa kyvyistään pyynnöstä ja kerää tietoa muiden laitteiden läsnäolosta ja ominaisuuksista. DHCP- ja DNS -palvelimien läsnäolo on valinnainen; niitä voidaan käyttää vain, jos ne ovat saatavilla verkossa. Lisäksi laite voi automaattisesti kirjautua ulos verkosta, mikä ei aiheuta häiriöitä sen toiminnassa.

UPnP-tekniikka hyödyntää kaikkea Internetin kehityksen kokemusta, se käyttää aktiivisesti monia sen komponentteja, mukaan lukien IP , TCP , UDP , HTTP ja XML . UPnP-kehitysprojekti mahdollistaa kiinnostuneiden yritysten monenvälisen yhteistyön standardilaitteiden ohjausprotokollan (DCP) luomisen alalla. Kuten Internet, nämä standardit perustuvat deklaratiivisiin langallisiin yhteysprotokolliin, jotka on kirjoitettu XML-kielellä ja jotka viestivät HTTP:n kautta.

Portin edelleenlähetys

UPnP:n avulla voit ohjata portteja ohjelmallisesti edelleen. Tätä käyttävät sovellukset, kuten Skype, μTorrent. Alla on esimerkki OLE -objektin käyttämisestä tällaisen uudelleenohjauksen toteuttamiseen (koodi on kirjoitettu Delphi 7:ssä, jota tukee Windows XP Service Pack 2 tai uudempi).

käyttää ..., WinSockia , ComObj :ta , ActiveX :ää .... //Lisää Delphin uusimpiin versioihin "OleAuto" ComObj-yksikön sijaan. ... toiminto GetLocalIP : String ; //Hae paikallinen IP-osoite const WSVer = $101 ; var wsaData : TWSAData ; P : PHostEnt ; Buf : Char - joukko [ 0..127 ] ; _ _ alkaa Tulos := '' ; jos WSAStartup ( WSVer , wsaData ) = 0 niin aloita jos GetHostName ( @Buf , 128 ) = 0 niin aloita P : = GetHostByName ( @Buf ) ; _ if P <> nolla sitten Tulos := iNet_ntoa ( PINAddr ( p ^. h_addr_list ^ ) ^ ) ; loppu ; WSACleanup ; loppu ; loppu ; menettely AddUPnPEntry ( Portti : Kokonaisluku ; const Nimi : ShortString ; LAN_IP : merkkijono ) ; var Nat : Variant ; Portit : Variant ; aloita jos EI ( LAN_IP = '127.0.0.1' ) ja aloita sitten kokeile Nat := CreateOleObject ( 'HNetCfg.NATUPnP' ) ; Portit := Nat . StaticPortMappingCollection ; jos ei VarIsClear ( Ports ) then begin //tee jotain //ShowMessage(IntToStr(Ports.Count)); portit . Lisää ( Portti , 'TCP' , Portti , LAN_IP , Tosi , nimi ) ; loppu ; paitsi e : Poikkeus do ShowMessage ( 'UpnP-portteja lisättäessä tapahtui virhe. ' + e . Viesti ) ; loppu ; loppu ; loppu ; menettely RemoveUPnPEntry ( Portti : Kokonaisluku ) ; var Nat : Variant ; Portit : Variant ; aloita kokeilu Nat := CreateOleObject ( 'HNetCfg.NATUPnP' ) ; Portit := Nat . StaticPortMappingCollection ; portit . Poista ( Portti , 'TCP' ) ; paitsi ShowMessage ( 'Virhe poistettaessa UPnP-portteja. ' + 'Tarkista tukeeko reitittimesi UPnP:tä ja ' + 'onko se ottanut UPnP:n käyttöön tai pois käytöstä.' ) ; loppu ; loppu ; menettely ListUPnPEntry ; var Nat : Variant ; Portit : Variant ; Enum : IEnumVARIANT ; MyPort : OLEVariant ; IntPort , ExtPort : Kokonaisluku ; Desc , Protocol , IntClient , ExtIP : WideString ; Käytössä : Boolen ; iValue : LongWord ; aloita kokeilu Nat := CreateOleObject ( 'HNetCfg.NATUPnP' ) ; Portit := Nat . StaticPortMappingCollection ; jos ei VarIsClear ( Ports ) , aloita Enum := IUnknown ( Ports . _NewEnum ) nimellä IEnumVARIANT ; kun taas Enum . Seuraava ( 1 , MyPort , iValue ) = S_OK do begin Desc := MyPort . Kuvaus ; Käytössä := MyPort . käytössä ; ExtIP := Oma portti . Ulkoinen IP-osoite ; ExtPort := MyPort . Ulkoinen portti ; IntClient := MyPort . InternalClient ; IntPort := MyPort . Sisäinen portti ; Protokolla := Oma portti . pöytäkirja ; Lomake 1 . Muistio 1 . Linjat . Lisää ( Desc + ^ I + ^ I + IntToStr ( ExtPort ) + ^ I + protokolla + ^ I + IntToStr ( IntPort ) + ^ I + IntClient ) ; loppu ; loppu ; paitsi ShowMessage ( 'UpnP-porttien luetteloinnissa tapahtui virhe. Tarkista, tukeeko reitittimesi UPnP:tä ja onko UPnP käytössä.' ) ; loppu ; loppu ; menettely TForm1 . Button1Click ( Lähettäjä : TObject ) ; Aloita AddUPnPEntry ( 8090 , 'MyProgram' , GetLocalIP ) ; //Lisää portin loppu ; menettely TForm1 . Button2Click ( Lähettäjä : TObject ) ; Aloita RemoveUPnPEntry ( 8090 ) ; //Poista portin loppu ; menettely TForm1 . Button3Click ( Lähettäjä : TObject ) ; alkaa ListUPnPEntry ; //Päivityksen loppu ;

Tässä esimerkissä palvelun nimeksi asetettiin "MyProgram". Palvelun nimi sisältää portinvälitysohjelman kuvauksen.

Katso myös

Ulkoiset linkit