[De-Nut-Discussion] Ethernut und SSH

de-nut-discussion at egnite.de de-nut-discussion at egnite.de
Tue Nov 23 14:33:10 CET 2004


Hallo Minggi ,

>
>1. Frage:
>
>Gibt es bereits Beispiele  mit Ethernut und SSH?
>Ist das Evtl möglich oder kann mir jemand sagen das es unmöglich ist?

Soweit ich weiss gibt es das noch nicht.
Die frage ist ja ob die Leistung vom ATmega128 ausreicht.

>
>2. Frage:
>Ist es möglich die IP-Adresse dynamisch zu setzten? Ich meine z.B. via 
>Telnet oder so.

Ja das ist möglich man sollte danach nur ein reboot vom System machen.
Hier ein kleines Beispiel:

int main(void)
{
   TCPSOCKET *sock;
   FILE *stream;
   char *cp;
   char buff[32];
   NutRegisterDevice(&DEV_ETHER, 0x8300, 5);
   u_char mac[6] = { 0x00, 0x06, 0x98, 0x21, 0x04, 0x33 };
   NutNetLoadConfig("eth0");
   memcpy(confnet.cd_name, "eth0", 4);
   if(confnet.cdn_cip_addr == 0)
     confnet.cdn_cip_addr = inet_addr("192.168.192.238");
   if(confnet.cdn_ip_mask == 0)
     confnet.cdn_ip_mask = inet_addr("255.255.255.0");
   memcpy(confnet.cdn_mac, mac, 6);
   NutNetSaveConfig();
   NutNetLoadConfig("eth0");
   for(;;){
     NutNetLoadConfig("eth0");
     sock = NutTcpCreateSocket();
     NutNetIfConfig("eth0", confnet.cdn_mac, confnet.cdn_cip_addr, 
confnet.cdn_ip_mask);
     if (NutTcpAccept(sock, 23) == 0) {
       if ((stream = _fdopen((int) sock, "r+b")) != 0) {
         fprintf(stream,"IP: %s\n\r",inet_ntoa(confnet.cdn_cip_addr));
         fprintf(stream,"Neue IP: ",inet_ntoa(confnet.cdn_cip_addr));
         fflush(stream);
         fgets(buff, sizeof(buff), stream);
         if ((cp = strchr(buff, '\r')) != 0)
           *cp = 0;
         if ((cp = strchr(buff, '\n')) != 0)
           *cp = 0;
         confnet.cdn_cip_addr = inet_addr(buff);
         NutNetSaveConfig();
         fprintf(stream,"REBOOT...");
         fflush(stream);
         wdt_reset();
         wdt_enable(1);
         while(1);
       }
     }
   }
}

Niels




More information about the De-Nut-Discussion mailing list