Permalänk

Program för omstart

Hej!

Jag skulle behöva ett program. Vet inte om det är svårt att skriva eller om det kanske redan finns.

Jag vill att programmet skall pinga en webserver tex 1 gång i minuten tex (endast för att kontrollera att den är ansluten mot internet), skulle den tappa anslutningen mot internet vill jag att datorn skall startas om efter 1 timmes uppehåll utan internet.

Tack tack!

Visa signatur

Workstation: Intel Core i5-10400 | Gigabyte B460M DS3H | 16GB DDR4 | Geforce GTX1660 SUPER 6GB |
Server: Dell R730xd | Intel Xeon E5-2640 | 64GB DDR3 ECC RAM | Dell VMware vSphere ESXi 6.5
NAS: Synology 212J 2x4TB, Synology 218play 2x4TB | MSMCP CCNA1

Permalänk

Provade att skriva något lite snabbt. Lägg märke till att klockan är tre och att jag använder det som min ursäkt för eventuella idiotlösningar. ^_^
Du sa inte om du sitter på Linux eller Windows, deras ping-kommandon är en aning olika.. I programmet är windows-pingen bortkommenterad, om du kör win får du växla kommentaren till linux-sidan

Ligger här: http://www.meistersoft.net/f/rebooter.py

Edit: Doh! >.< Detta är ett python-program, icke-exekverbart.. Hoppas du har python installerat

Visa signatur

http://fredlight.no-ip.org
- Trust in me. I have come to save this world.

Permalänk

hehe...
tanken var att det skulle köras på en windowsbox....

Om den pingar nån webbsida eller hur den gör spelar ingen roll. Bara den håller koll att den är på internet, nät den tappar access så skall den boota om efter 30 min. Något du skulle kunna hjälpa mig med?

Visa signatur

Workstation: Intel Core i5-10400 | Gigabyte B460M DS3H | 16GB DDR4 | Geforce GTX1660 SUPER 6GB |
Server: Dell R730xd | Intel Xeon E5-2640 | 64GB DDR3 ECC RAM | Dell VMware vSphere ESXi 6.5
NAS: Synology 212J 2x4TB, Synology 218play 2x4TB | MSMCP CCNA1

Permalänk

Du kan köra det på en Windows box om du laddar ner Python. www.python.org tror jag.

EDIT: Tänk om den pingar en sida som är nere för tillfället? Då startar den om sig i onödan ju.

Visa signatur

Neun und neunsich.

Permalänk

#include <stdio.h> #include <winsock2.h> #include <WS2tcpip.h> #include <WSPiApi.h> #define ADDR "www.google.se" #define PORT 80 #define INTERVALL 3600 int main() { int iResult; WSADATA wsaData; iResult = WSAStartup(MAKEWORD(2,2), &wsaData); if (iResult != 0) { printf("WSAStartup failed: %d\n", iResult); return 1; } SOCKET sock = INVALID_SOCKET; sock = socket(AF_INET,SOCK_STREAM,0); if (sock == INVALID_SOCKET) { printf("Error at socket(): %ld\n", WSAGetLastError()); WSACleanup(); closesocket( sock ); return; } struct hostent *host; if((host = gethostbyname(ADDR)) == NULL) { printf("gethostbyname() failed"); WSACleanup(); closesocket( sock ); } struct sockaddr_in sin; memset( &sin, 0, sizeof(sin) ); sin.sin_family = AF_INET; sin.sin_addr.s_addr = ((struct in_addr *)(host->h_addr))->s_addr; sin.sin_port = htons( PORT ); while(1) { while(sleep(500)) { if (connect( sock, &sin, sizeof sin ) == SOCKET_ERROR ) { WSACleanup(); closesocket( sock ); sleep(INTERVALL); system("shutdown -r"); } } } }

Kompilerad:

http://exet-upload.mine.nu/upl/Admin/connectivity.exe

Visa signatur

Asus Maximus II formula, E8400 @ 3.9GHz, 4GB Dominator DDR2, Radeon HD4850.

Permalänk

Oh nice!

Jättetack! Startar datorn om om den skulle tappa kontakten mot google efter 3600 sek alltså? eller stängs den av helt? Växeln -r är kanske reboot.
Om jag har dragit igång (exekeverat den) den här nu, och vill "ångra" mig, och inte vill att den skall boota om ifall datorn tappar lina. Hur stänger jag av den?

Visa signatur

Workstation: Intel Core i5-10400 | Gigabyte B460M DS3H | 16GB DDR4 | Geforce GTX1660 SUPER 6GB |
Server: Dell R730xd | Intel Xeon E5-2640 | 64GB DDR3 ECC RAM | Dell VMware vSphere ESXi 6.5
NAS: Synology 212J 2x4TB, Synology 218play 2x4TB | MSMCP CCNA1

Permalänk
Medlem

Syntax: shutdown [-i | -l | -s | -r | -a] [-f] [-m \\datornamn] [-t xx] [-c "kommentar"] [-d up:xx:yy] Inga argument Den här dialogrutan visas (samma som -?) -i Visa användargränssnitt. Detta måste vara första alternativ. -l Logga ut (kan ej användas med alternativet \m) -s Stäng av datorn -r Stäng av och starta om datorn -a Avbryt avstängning -m \\datornamn Namnet på en fjärrdator som ska stängas av/startas om eller där åtgärden ska avbrytas -t xx Timeout för avstängning, uttryckt i sekunder -c "kommentar" Kommentar för nedstängningen (högst 127 tecken) -f Avslutar progam som körs utan varning -d [u][p]:xx:yy Orsakskod för avstängningen u anger användarkod p anger planerad nedstängning xx är övre orsakskod (positivt heltal som är mindre än 256) yy är nedre orsakskod (positivt heltal som är större än 65536)

edit: Behövs memset( &sin, 0, sizeof(sin) ); den, och om så fall till vad ( bara undrar lite )

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av CIC
edit: Behövs memset( &sin, 0, sizeof(sin) ); den, och om så fall till vad ( bara undrar lite )

Behövs och behövs, men i C finns det ju inga constructors som kan nollsätta en struct när den skapas så det är ju alltid bra att köra en memset för att se till att allt är nollat. Ifall det är ett måste beror väl på structen och vad den används till. Ifall man t.ex. har en fette-struct med massa paramterar som man inte bryr sig om och som ska vara 0 så måste man ju göra det.
Just i fallet sockaddr_in är det inget måste, men det är ju bra att ha för vana att göra det.

Visa signatur

hmm

Permalänk

Är det inte bättre att pinga sin gateway ut mot internet? Om den fungerar så borde det inte vara datorns fel att internet inte fungerar.