alf29 hat geschrieben:das kann ich hier nicht nachvollziehen. Hast Du einen Ethereal-Trace davon?
Naja, ist auch zugegeben nicht so auf Anhieb zu sehen der Fehler, da telnet und vorallem auch ntpdate wohl ueber die termcap das 0d dann ausfiltern.
Du kannst es aber sehr leicht mittels netcat nachpruefen. Ich selbst habe mir aber schnell folgendes zusammengebaut:
Code: Alles auswählen
#include <stdio.h>
#include <netdb.h>
#include <time.h>
#include <unistd.h>
int main(int argc, char **argv)
{
struct sockaddr_in server_addr;
struct hostent *host;
unsigned long time;
int fd = socket(AF_INET, SOCK_STREAM, 0);
if (argc != 2 ||
fd < 0 ||
(host = gethostbyname(argv[1])) == NULL)
return 0;
server_addr.sin_family = AF_INET;
server_addr.sin_addr.s_addr = *(long *)host->h_addr;
server_addr.sin_port = htons(37);
connect(fd, (struct sockaddr *)&server_addr, sizeof(server_addr));
if (read(fd, (void *)&time, 4) == 4)
{
printf("%s: 0x%08lx", argv[1], time);
time -= 2208988800UL;
printf(" .. %s\n", ctime(&time));
}
close(fd);
return 0;
}
Das ergibt dann beim Lancom folgendes:
192.168.0.xxx: 0xc80d0a2e .. Thu May 11 02:56:14 2006
und bei einem ntpd auf einem Linux Rechner:
192.168.0.xx: 0xc80a2e50 .. Mon May 8 22:53:36 2006
Achso, die gelieferte Uhrzeit vom ntpd des Linux Rechners ist natuerlich die richtige
