Seite 5 von 5 ErsteErste ... 2345
Like Tree5Danke
ERLEDIGT
NEIN
ANTWORTEN
68
ZUGRIFFE
5495
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
  1. #61
    tobsa ist offline Mitglied
    Registriert seit
    Oct 2010
    Beiträge
    10
    Hab das von Rapidshare + den Quelltext.
    Beide gehn leider nicht.

    In der liste stehn die IP Adressen die auf dem Screenshot zu sehn sind, also:
    "
    192.168.0.194
    192.168.0.195
    192.168.0.196
    192.168.0.197
    192.168.0.198
    127.0.0.1
    74.125.43.105
    "

    Edit: So, hab mal in den Adminmodus gewechselt, und siehe da, es geht -.-

    sry für die aufregung...
     

  2. #62
    Avatar von sheel
    sheel ist gerade online Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    6.725
    Interessant...sollte eigentlich auch ohne Admin gehen.
    Ob das am SP3 liegt?
    Werd ich testen.
     

  3. #63
    tobsa ist offline Mitglied
    Registriert seit
    Oct 2010
    Beiträge
    10
    hmm, liegt wirklich an den adminrechten.

    bissl OT:
    weiß jmd wie ich im Benutzer soetwas dauerhaft als Admin ausführen kann?
    ich kann ja rechte Maustaste - Ausführen als Admin..

    dann gehts auch.. Brauch es aber das es mir das Programm quasi mit dem autostart hochfährt und dann solange läuft bis es den PC ausschaltet.

    mfg

    Edit:
    mit
    %systemroot%\system32\runas.exe /savecred /user:Administrator "D:\Autoshutdown\IP.exe

    das in der Verknüpfung vor den Pfad. (Administrator ist der Benutzername als der es ausgeführt werden soll)
    die liste.txt muss dann allerding in "C:\WinXP\system32" kopiert werden
    mfg
    Geändert von tobsa (25.10.10 um 15:51 Uhr)
     

  4. #64
    tobsa ist offline Mitglied
    Registriert seit
    Oct 2010
    Beiträge
    10
    So, nun muss ich doch noch Fragen: Wo ist den der Timer eingebaut, damit er sich jede Minute aktualisiert? Muss den ja auf ca. 5 Min hochsetzen.

    mfg
     

  5. #65
    Avatar von sheel
    sheel ist gerade online Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    6.725
    Zeigst du vielleicht einmal den Quelltext, den du verwendest? Ich verlier den Überblick vor lauter verschiedenen
     

  6. #66
    tobsa ist offline Mitglied
    Registriert seit
    Oct 2010
    Beiträge
    10
    das was mit kommentaren versehn ist ist von mir. die header datein hab ich wo anderst hingeschmissen..

    hau mich aber bitte nicht weil ich dein programm verunstaltet hab. kann (noch) kein C++ und C nur so halb.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    
    #include "stdafx.h"
     
    #pragma comment(lib,"ws2_32.lib")
    #define ICMP_ECHOREPLY 0
    #define ICMP_UNREACHABLE 3
    #define ICMP_ECHO 8
    #define ICMP_CODE_NETWORK_UNREACHABLE 0
    #define ICMP_CODE_HOST_UNREACHABLE 1
    #define ICMP_MIN_SIZE 8
    #define STATUS_FAILED 0xFFFF
    #define PING_FAILED 0xFFFFF0
    #define PING_TIMEOUT 0xFFFFF1
    #define PING_NOHOST 0xFFFFF2
     
    typedef struct{unsigned int h_len:4;unsigned int version:4;unsigned char tos;
        unsigned short total_len;unsigned short ident;unsigned short frag_and_flags;
        unsigned char ttl;unsigned char proto;unsigned short checksum;unsigned int sourceIP;
        unsigned int destIP;}ip_header_t;
    typedef struct{char i_type;char i_code;unsigned short i_cksum;unsigned short i_id;
        unsigned short i_seq;unsigned long timestamp;}icmp_header_t;
    struct sock_char{SOCKET s;char c,no;char *b;};
     
    unsigned short Ping_Checksum(unsigned short *buffer,int size){unsigned long cksum=0;while(size>1)
    {cksum+=*buffer++;size-=sizeof(unsigned short);}if(size){cksum+=*(unsigned char*)buffer;}
    cksum=(cksum>>16)+(cksum&0xffff);cksum+=(cksum>>16);return((unsigned short)(~cksum));}
     
    unsigned int Ping_Ext(const char *ip,unsigned int datasize,int recvtimto){SOCKET sckSock;
    SOCKADDR_IN saDest,saFrom;int nRecvTimeOut=recvtimto;datasize+=sizeof(icmp_header_t);
    char *szICMPData=0;char szRecvBuff[65000+sizeof(ip_header_t)+sizeof(icmp_header_t)];DWORD dwStart,
    dwStop;if((sckSock=socket(AF_INET,SOCK_RAW,IPPROTO_ICMP))==INVALID_SOCKET)return PING_FAILED;
    if(setsockopt(sckSock,SOL_SOCKET,SO_RCVTIMEO,(char *)&nRecvTimeOut,sizeof(nRecvTimeOut))==
    SOCKET_ERROR)return PING_FAILED;{unsigned long ulAddr=inet_addr(ip);HOSTENT *pHostEntity=0;
    if(ulAddr==INADDR_NONE){pHostEntity=gethostbyname(ip);memcpy(&ulAddr,pHostEntity->h_addr,
    pHostEntity->h_length);}saDest.sin_addr.s_addr=ulAddr;saDest.sin_family=(pHostEntity?pHostEntity->
    h_addrtype:AF_INET);saDest.sin_port=0;}{szICMPData=(char *)malloc(sizeof(icmp_header_t)+datasize+1);if(szICMPData==NULL)
    return PING_FAILED;((icmp_header_t *)szICMPData)->i_cksum=0;((icmp_header_t *)szICMPData)->i_code=0;
    ((icmp_header_t *)szICMPData)->i_id=(unsigned short)GetCurrentProcessId();((icmp_header_t *)szICMPData)->
    i_seq=0;((icmp_header_t *)szICMPData)->i_type=ICMP_ECHO;memset(szICMPData+sizeof(icmp_header_t),'.',datasize);
    memcpy(szICMPData+sizeof(icmp_header_t),"sheel pings",min(datasize,11));}{((icmp_header_t *)szICMPData)->
    timestamp=GetTickCount();((icmp_header_t *)szICMPData)->i_cksum=Ping_Checksum
    ((unsigned short *)szICMPData,datasize+sizeof(icmp_header_t));}if(sendto(sckSock,szICMPData,
    sizeof(icmp_header_t)+datasize,0,(SOCKADDR *)&saDest,sizeof(saDest))==SOCKET_ERROR)return
    PING_FAILED;dwStart=GetTickCount();while(1){int iResponseLen=0;{int nFromLen=sizeof(saFrom);
    iResponseLen=recvfrom(sckSock,szRecvBuff,65000+sizeof(ip_header_t)+sizeof(icmp_header_t),0,
    (SOCKADDR *)&saFrom,&nFromLen);dwStop=GetTickCount();if(iResponseLen==SOCKET_ERROR)
    {if(WSAGetLastError()==WSAETIMEDOUT)return PING_TIMEOUT;else{return PING_FAILED;}}}
    {ip_header_t *hdrIPHeader=(ip_header_t *)szRecvBuff;icmp_header_t *hdrICMPHeader
    =(icmp_header_t *)(szRecvBuff+hdrIPHeader->h_len*4);if(hdrICMPHeader->i_id!=
    (unsigned short)GetCurrentProcessId())continue;if(hdrICMPHeader->i_type==
    ICMP_UNREACHABLE)if(hdrICMPHeader->i_code==ICMP_CODE_HOST_UNREACHABLE||
    hdrICMPHeader->i_code==ICMP_CODE_NETWORK_UNREACHABLE)return PING_NOHOST;
    if(hdrICMPHeader->i_code==ICMP_ECHOREPLY)break;}}free(szICMPData);
    return dwStop-dwStart;}
     
    int Ping(const char *ip,unsigned short int z=1000){int i=Ping_Ext(ip,32,z);
    if(i==PING_FAILED||i==PING_TIMEOUT||i==PING_NOHOST)return -1;return i;}
    int A=0;
     
    char IsValidIP(char *ip,bool accwsp,char zuweis,bool tri){char p[32];
    int e1,e2,e3,e4=1;int i,j;if(accwsp){j=0;for(i=0;i<=(signed)strlen(ip);i++)
    {if(ip[i]!=32&&ip[i]!=' '&&ip[i]!=10&&ip[i]!=32){p[j]=ip[i];j++;}}}
    else{strcpy(p,ip);}j=0;for(i=0;i<(signed)strlen(p);i++){if((p[i]<'0'||p[i]>'9')
    &&p[i]!='.')return 0;if(p[i]=='.')j++;}if((j!=3&&(!tri))||(j!=2&&tri))return 0;
    if(!tri)sscanf(p,"%d.%d.%d.%d",&e1,&e2,&e3,&e4);else{sscanf(p,"%d.%d.%d",&e1,&e2,&e3);}
    if(e1<0||e2<0||e3<0||e4<0)return 0;if(e1>255||e2>255||e3>255||e4>255)return 0;if(zuweis)
    {if(tri){if(zuweis<2)sprintf(ip,"%.3d.%.3d.%.3d",e1,e2,e3);else{sprintf(ip,"%d.%d.%d",
    e1,e2,e3);}}else{if(zuweis<2)sprintf(ip,"%.3d.%.3d.%.3d.%.3d",e1,e2,e3,e4);
    else{sprintf(ip,"%d.%d.%d.%d",e1,e2,e3,e4);}}}return 1;}
     
    int main()
    {
        HANDLE han=GetStdHandle(STD_OUTPUT_HANDLE);
        FILE *pFile;
        WSADATA wsastrct;
        char ip[64];
        int i;
        if(WSAStartup(MAKEWORD(2,2),&wsastrct))return 0;
        pFile=fopen("liste.txt","r");
        if(pFile==NULL)     
        {
            SetConsoleTextAttribute(han,0x0c);
            printf("Achtung! Die Datei 'liste.txt' konnte nicht geladen werden!\n");
            SetConsoleTextAttribute(han,0x07);
            system("pause");
            WSACleanup();
            return 0;
        }
        SetConsoleTextAttribute(han,0x0A);
        printf(" Die Datei 'liste.txt' konnte erfolgreich geladen werden!\n");
        SetConsoleTextAttribute(han,0x07);
     
                for(i=0;i<60;i++)                   // Beginn Startverzögerung, ca. 5 Minuten
                {
                    Sleep(5000);                    // Zeit in ms (1000 = 1 sec)
                    if(kbhit())
                    {
                        if(_getch()==27)
                        {
                            fclose(pFile);
                            WSACleanup();
                            return 0;
                        }
                    }
                }                                   //Ende Startverzögerung
        while(1)
        {
            if(feof(pFile))
            {
                fseek(pFile,0,SEEK_SET);
                if (A<0)                            //Wenn A kleiner 0 ist... (Keine Antworten oder 0 ms)
                {
                    system("C:\\WINXP\\System32\\shutdown.exe -s -f -t 0 "); //Herunterfahren
                }
                A=0;                                //Antworten werden wieder gelöscht
                for(i=0;i<60;i++)
                {
                    Sleep(1000);
                    if(kbhit())
                    {
                        if(_getch()==27)
                        {
                            fclose(pFile);
                            WSACleanup();
                            return 0;
                        }
                    }
                }
                system("cls");
            }
            ip[0]='\0';
            fgets(ip,64,pFile);
            ip[63]='\0';
            if(ip[strlen(ip)-1]=='\n')
                ip[strlen(ip)-1]='\0';
            if(ip[0]=='\0'){}
            else if(!IsValidIP(ip,1,0,0))
            {
                printf("Nicht g%cltig: ",129U);
                puts(ip);
            }
            else
            {
                int x=Ping(ip);
                if (x>=0)                               // Werden nur antworten addiert
                {
                A=A++;                                  // Es gab eine Antwort
                }
                printf(ip);printf(": ");
                if(x>=0)
                    printf("Online: %d ms\n",x);
                else
                    printf("Offline\n");
            }
            if(kbhit())
            {
                if(_getch()==27)
                {
                    fclose(pFile);
                    WSACleanup();
                    return 0;
                }
            }
        }
        fclose(pFile);
        WSACleanup();
        return 0;
    }
     

  7. #67
    Avatar von sheel
    sheel ist gerade online Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    6.725
    Beim
    if(A<0){...system shutdown...

    Sollte A<=0 als Bedingung rein.
    Und beim shutdown eventuell kein -f mitgeben, die Programme werden sich ja wohl ordentlich beenden dürfen.

    Außerdem beim Sleep ein paar Zeilen unter dem shutown auf 5000 eintragen, genau wie beim oberen Sleep.
    bzw. Sleep auf 1000 lassen und in der Schleife statt 60 300 nehmen, bewirkt das gleiche.

    Sollte alles sein.

    Gruß

    PS: Kann erst wieder um 9 Uhr Antworten.
     

  8. #68
    tobsa ist offline Mitglied
    Registriert seit
    Oct 2010
    Beiträge
    10
    So, ist getestet, PC fährt runter wenn ich Netzwerkkabel bei ihm ziehe.
    Perfekt!
    Danke nochmal!

    mfg tobsa
     

  9. #69
    Avatar von sheel
    sheel ist gerade online Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    6.725
    Schön, schon der Dritte dem der Thread geholfen hat

    Und keine Angst, ich hau keinen weil er Programmieren lernt

    Gruß
     

Thema nicht erledigt
Seite 5 von 5 ErsteErste ... 2345

Ähnliche Themen

  1. J2ME Daten aus txt Datei in Liste einlesen
    Von MC_Basstard im Forum Java Mobile, Android, J2ME, Blackberry
    Antworten: 17
    Letzter Beitrag: 29.03.12, 17:38
  2. [Python]Inhalt einer Excel File einlesen und in Liste speichern!
    Von Bexx im Forum CGI, Perl, Python, Ruby, Power Shell
    Antworten: 3
    Letzter Beitrag: 22.04.09, 12:55
  3. Text einlesen und einzelne Wörter in Liste speichern
    Von Carbon2000 im Forum Java Grundlagen
    Antworten: 1
    Letzter Beitrag: 25.04.08, 23:23
  4. excel liste einlesen
    Von graspalme im Forum Desktop Publishing (DTP)
    Antworten: 1
    Letzter Beitrag: 10.06.04, 12:30
  5. Verzeichniss einlesen und Dateien in eine Liste setzen.
    Von String im Forum Visual Basic 6.0
    Antworten: 4
    Letzter Beitrag: 24.02.04, 13:17