Dit is het commando netpipes dat kan worden uitgevoerd in de gratis hostingprovider van OnWorks met behulp van een van onze meerdere gratis online werkstations zoals Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator
PROGRAMMA:
NAAM
netpipes - een pakket om BSD TCP/IP-streamsockets te manipuleren
versie 4.2
KORTE INHOUD
kraan port (--in|--uit|--fout|--fd n)+ [--een keer] [--uitgebreid] [--stil] [--Unix]
[--buitenlandse gastheer addr] [--buitenlandse haven port] [--lokalehost addr] [--serieel] [--demon]
[--stilgelegd (r|w) ] [--pidbestand bestandsnaam] [--noreuseaddr] [--achterstand n]
[-[i][o][e][#3[,4[,5...]]][v][1][q][u][d][s,-p buitenlandse haven] [-h buitenlandse gastheer] [-H
lokale gastheer] commando betoogt
slang hostname port (--in|--uit|--fout|--fd n|--slaaf) [--uitgebreid] [--Unix] [--lokale poort
port] [--lokalehost addr] [--probeer opnieuw n] [--vertraging n] [--stilgelegd [r|w][a] ] [--noreuseaddr]
[-[i][o][e][#3[,4[,5...]]][s][v][u,-p lokale poort] [-h lokale gastheer] commando betoogt
ingekapseld --fd n [ --uitgebreid ] [ --subproces [ --infd n[=sid] ] [ --uitfd n[=sid] ] [
--dubbelzijdig n[=sid] ] [ --Duplex n[=sid] ] [ --DUPLEX n[=sid] ] [ --voorkeur-lokaal ] [
--voorkeur-op afstand ] [ --alleen lokaal ] [ --alleen op afstand ] ] [ --cliënt ] [ --server ]
-[#n][v][s[in][on][dn][ion][oin][l][r][L][R]] commando betoogt ...
sockdown [fd [hoe] ]
krijgpeernaam [ -uitgebreid ] [ -sok ] [ fd ]
krijgt naam [ -uitgebreid ] [ -gelijke ] [ fd ]
tijdslimiet.netpipes [ -v ] [ -geen moord ] Time to commando betoogt
PRODUCTBESCHRIJVING
Het netpipes-pakket maakt TCP/IP-streams bruikbaar in shell-scripts. Het kan ook vereenvoudigen
client/server-code door de programmeur alle vervelende programmeerbits te laten overslaan
gerelateerd aan sockets en concentreer je op het schrijven van een filter/service.
``Waarom zou iedereen willen naar do Dat?''
-- Richard stalknecht
kraan is het serveruiteinde van een TCP/IP-stream. Het luistert op een poort van de lokale machine
wachten op aansluitingen. Elke keer dat het een verbinding krijgt, splitst het een proces op om een
service voor de verbindende klant.
slang is het client-uiteinde van een TCP/IP-stream. Het maakt actief verbinding met een externe poort en
voert een proces uit om een service aan te vragen.
ingekapseld is een implementatie van het Session Control Protocol. Het stelt je in staat om
multiplex meerdere streams over een enkele TCP-sessie en verzendt ook externe exit
statuut.
sockdown is een eenvoudig programma dat is ontworpen om de socketverbinding geheel of gedeeltelijk af te sluiten.
Het is vooral handig wanneer de processen die op de socket zijn aangesloten zowel invoer als uitvoer uitvoeren
uitgang.
krijgpeernaam en krijgt naam zijn twee namen voor een programma dat is ontworpen om de
adressen van de uiteinden van een socket. krijgpeernaam drukt het adres van het externe uiteinde af en
krijgt naam drukt het adres van het lokale einde af.
tijdslimiet.netpipes beperkt de hoeveelheid voorgrondwandkloktijd die een proces mag verbruiken.
Nadat de tijdslimiet is verstreken, wordt het proces beëindigd of wordt het afgesloten en blijft het in de
achtergrond.
Voorbeelden
Hier is een eenvoudige opdracht die ik vaak uitvoer om directorystructuren tussen machines over te dragen.
(rsh werkt niet omdat één machine is aangesloten via SLIP en .rhosts zijn niet beschikbaar
vraag).
server$ kraan 3000 --out tar cf - .
client$ slangenserver 3000 --in tar xvf -
Hier is een minimale HTTP-client. Het is zo minimaal dat het oude HTTP spreekt.
cairo$ slang www.cis.ufl.edu 80 --in --out \
sh -c "(echo 'GET /'; sockdown) & kat > resultaat"
En natuurlijk is er de metaserver van Nick Trown voor Netrek
cairo$ slang metaserver.ecst.csuchico.edu 3521 --in cat
Staat u mij toe mij bij voorbaat te verontschuldigen voor de ingewikkeldheid van het volgende voorbeeld. Het
vereist kennis van de syntaxis van Bourne shell-bestandsdescriptoromleiding (en
illustreert waarom csh en tcsh eieren zuigen). Probeer dit niet te typen vanaf uw tcsh-opdracht
lijn. Krijg een bash (GNU's Bourne Again SHell).
Stel dat u onderscheid wilt maken tussen stdout en stderr van een proces op afstand
remote$ kraan 3000 --fd 3 \
inkapselen --fd 3 --infd 0 --outfd 1 --outfd 2 --subproc \
externe app
local$ slang afstandsbediening 3000 --fd 3 \
inkapselen --fd 3 --outfd 3 --infd 4 --infd 5 --subproc \
sh -c "kat 0<&4 3>&- & kat 0<&5 1>&2 3>&- & \
kat 1>&3 ; leidinggevende 3>&-"
Sluit alle onnodige bestandsbeschrijvingen wanneer u een achtergrondtaak uitzet. Daarom is de
katten met een achtergrond hebben 3>&-.
server$ kraan 3000 --in --out --verbose enscript -2rGhp -
klant$ ps aux | slangenserver 3000 --in --out \
sh -c " (kat <&3; sockdown ) & kat >&4 " 3<&0 4>&1 | \
lpr-Pps422
#of misschien dit, maar ik heb het niet getest
klant$ ps aux | slangenserver 3000 --fd 3 \
sh -c " (kat >&3; sockdown 3 ) & kat <&3 " | \
lpr-Pps422
Dit bewijst die slang blikje worden gebruikt als onderdeel van een pijplijn om een soort afstandsbediening uit te voeren
procedureaanroep (RPC). Nadat je dat voorbeeld hebt bedacht, weet je hoe je het moet gebruiken
Bourne shell om bestandsbeschrijvingen door elkaar te schudden. Het is een handige vaardigheid.
Nu gaan we tot het uiterste, maar vereenvoudigen de zaken door de --slaaf optie van slang. De
volgende is een socket relais
gateway$ kraan 3000 -io slangserver 4000 --slave
Het is een handige kleine bugger als je af en toe door een firewall wilt tunnelen
basis. Als u merkt dat de verbinding 'vastloopt', probeer dan de --netslaaf optie
in plaats van --slaaf. (telnet-proxy's zouden hiervan profiteren)
Voor degenen onder u die ssh gebruiken, hier is hoe u wat informatie kunt tunnelen via een gecodeerde
SSH-poort vooruit.
server$ kraan 3000 -1v --fd 1 --foreignhost server echo blah
client$ ssh -n -x -L 3000:server:3000 server slaapstand 60 &
client$ slang localhost 3000 --fd 0 -retry 10 cat
De truc met ssh's port forwarding is dat de stillegging(2) systeemaanroep veroorzaakt ssh naar
sluit beide helften van de full-duplex verbinding in plaats van slechts één helft. Daarom jij
moet u --fd 1 en --fd 0 gebruiken. Als u de helft van de verbinding moet kunnen sluiten
terwijl je de andere nog steeds gebruikt, gebruik je de ingekapselde verpakking.
server$ kraan 3000 -1v --fd 3 --foreignhost server \
inkapselen --fd 3 --server -si0o1 tr az AZ
client$ ssh -n -x -L 3000:server:3000 server slaapstand 60 &
client$ echo blah | slang localhost 3000 --fd 3 -retry 10 \
inkapselen --fd 3 --client
OPMERKING
De pakketbeheerder van Debian heeft een andere naam gekregen tijdslimiet naar de meer expressieve
tijdslimiet.netpipes, omdat er een beter alternatief bestaat met dezelfde korte naam, maar
die actief wordt onderhouden als onafhankelijke software.
Gebruik netpipes online met behulp van onworks.net-services