/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
Logon-dimmer til Stofanet (UNIX-netværkssj~
Fra : "Søren Hansen"


Dato : 07-06-01 22:34

Jeg havde egentlig sat mig for, at lave en login-dimmer til Stofanet, men
det lader til at være en anelse mere avanceret, end jeg lige havde regnet
med..
Ideen er, at der skal laves en socket, connect()'es til 192.168.30.2 på
port 259, ventes på "ogin:", sendes et brugernavn, ventes på "assword:"
og sendes et password. Men recv() vil ikke helt som jeg vil.. Noget går i
hvert fald galt.. Nogen, der kan hjælpe?

Platformen er Linux..

--
Salu2, Søren.

 
 
Mads Toftum (07-06-2001)
Kommentar
Fra : Mads Toftum


Dato : 07-06-01 22:46

On Thu, 07 Jun 2001 23:33:36 +0200, "Søren Hansen" <sh@freesite.dk>
wrote:

>Ideen er, at der skal laves en socket, connect()'es til 192.168.30.2 på
>port 259, ventes på "ogin:", sendes et brugernavn, ventes på "assword:"
>og sendes et password. Men recv() vil ikke helt som jeg vil.. Noget går i
>hvert fald galt.. Nogen, der kan hjælpe?

Hvad går galt? Hvordan ser koden ud?
Se evt. http://www.regnecentralen.dk/thm/sw/slic/


vh

Mads Toftum, QDPH
som på USENET repræsenterer sig selv og ingen andre.

Michael Rasmussen (08-06-2001)
Kommentar
Fra : Michael Rasmussen


Dato : 08-06-01 01:04

"Søren Hansen" <sh@freesite.dk> wrote in message
news:20010607.233331.1626276121.10237@homer.stofanet.dk...
> Jeg havde egentlig sat mig for, at lave en login-dimmer til Stofanet, men
> det lader til at være en anelse mere avanceret, end jeg lige havde regnet
> med..
> Ideen er, at der skal laves en socket, connect()'es til 192.168.30.2 på
> port 259, ventes på "ogin:", sendes et brugernavn, ventes på "assword:"
> og sendes et password. Men recv() vil ikke helt som jeg vil.. Noget går i
> hvert fald galt.. Nogen, der kan hjælpe?
>
> Platformen er Linux..
>
> --
> Salu2, Søren.

husker du at recv ikke nødvendigvis læser hele strengen?
Du skal have en eller anden form for funktion der recv'er indtil et vist
tegn er sendt fx. ':'

- Michael Rasmussen



Peter Seidler (08-06-2001)
Kommentar
Fra : Peter Seidler


Dato : 08-06-01 23:47


Søren Hansen <sh@freesite.dk> skrev i en
nyhedsmeddelelse:20010607.233331.1626276121.10237@homer.stofanet.dk...
> Jeg havde egentlig sat mig for, at lave en login-dimmer til Stofanet, men
> det lader til at være en anelse mere avanceret, end jeg lige havde regnet
> med..

Hvad med bare at lave et expect script?
Det skulle ikke være så svært.

--
Peter Seidler

>
> --
> Salu2, Søren.



aslak (09-06-2001)
Kommentar
Fra : aslak


Dato : 09-06-01 09:48

"Søren Hansen" <sh@freesite.dk> wrote in message
news:20010607.233331.1626276121.10237@homer.stofanet.dk...
> Jeg havde egentlig sat mig for, at lave en login-dimmer til Stofanet, men
> det lader til at være en anelse mere avanceret, end jeg lige havde regnet
> med..
> Ideen er, at der skal laves en socket, connect()'es til 192.168.30.2 på
> port 259, ventes på "ogin:", sendes et brugernavn, ventes på "assword:"
> og sendes et password. Men recv() vil ikke helt som jeg vil.. Noget går i
> hvert fald galt.. Nogen, der kan hjælpe?
>
> Platformen er Linux..
>
> --
> Salu2, Søren.

Jeg har lavet SWIC som er et stofa program til windows, OS skulle dog ikke
være afgørende her. Først pakker jeg en string der hedder
"<login>\n<password>\n<1>\n" og sender den, hvorefter jeg bruger denne løkke
til at modtage med:

//while we haven't received "authenticated" -> receive more or quit
while (kmpsearch("authenticated",LPCSTR(m_strAnswer)) < 0)
{
//if we have received "exceeded" = traffic limit exceeded
if (kmpsearch("exceeded",LPCSTR(m_strAnswer)) != -1)
{
m_sockServer.Close();
return SOCK_IO_ERR_EXCEEDED;
}
//if we have received "found" = bad loginname
if (kmpsearch("found",LPCSTR(m_strAnswer)) != -1)
{
m_sockServer.Close();
return SOCK_IO_ERR_LOGIN;
}
//if we have received "denied" = bad password
if (kmpsearch("denied",LPCSTR(m_strAnswer)) != -1)
{
m_sockServer.Close();
return SOCK_IO_ERR_PASSWORD;
}
//if we have received "FEJL" = error while receiving
if (kmpsearch("FEJL",LPCSTR(m_strAnswer)) != -1)
{
m_sockServer.Close();
return SOCK_IO_ERR_COMM;
}
//nothing interesting rerceived -> receive more
this->ReceiveMsg();
}

Og det virker fint...

mvh Rasmus



Anders Borum (09-06-2001)
Kommentar
Fra : Anders Borum


Dato : 09-06-01 10:18

"Søren Hansen" <sh@freesite.dk> skrev i en meddelelse
news:20010607.233331.1626276121.10237@homer.stofanet.dk...
> Jeg havde egentlig sat mig for, at lave en login-dimmer til Stofanet, men
> det lader til at være en anelse mere avanceret, end jeg lige havde regnet
> med..
> Ideen er, at der skal laves en socket, connect()'es til 192.168.30.2 på
> port 259, ventes på "ogin:", sendes et brugernavn, ventes på "assword:"
> og sendes et password. Men recv() vil ikke helt som jeg vil.. Noget går i
> hvert fald galt.. Nogen, der kan hjælpe?

En ting man tit glemmer er at telnet-protokollen (som stofas login-procedure
bygger på) _ikke_ bare fungerer ved at sende tekst frem og tilbage via en
socket, men har til formål at give terminalegenskaber over et netværk. Først
skal man derfor gennem en initialiseringsfase, hvor der forhandles om
terminalens egenskaber fx. hvilket tegn der bruges til at slette. Man
modtager tegnsekvenser der starter med \0xff og skal så alt svare om man
ønsker at understøtte disse options. Det kan tænkes at selve
telnet-sessionen aldrig rigtig kommer igang fordi du ikke reagerer på disse
tegnsekvenser. Det har jeg oplevet nogle gange.

Det er altsammen beskrevet i rfc 854.

Hilsen Anders

>
> Platformen er Linux..
>
> --
> Salu2, Søren.



Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste