Ping meter

Pagina: 1
Acties:

  • FutureCow
  • Registratie: December 2000
  • Laatst online: 23:02

FutureCow

(C) FutureCow

Topicstarter
ik heb kastje met 2 lampjes rood en groen heb ze op LPT poort en mijn broer heeft progje zodat als Pinr Reply is gaat groene aan Ping-Timed-out gaat rode aan

weet iemand toevallig hoe dit progje heet en hoe je IP en waar data naar verstuurt moet worden kunt wijzigen??

Verwijderd

Vraag het aan je broer zou ik zo zeggen...

Als je het weet post het dan wel ff, ben ook wel geinteresseerd :P

  • bobo1on1
  • Registratie: Juli 2001
  • Laatst online: 19-10-2025
Kun je ook zelf schrijven in vb, er zijn van die leuke controls te downloaden waarmee je ken pingen.

Impedance, a measure of opposition to time-varying electric current in an electric circuit.
Not to be confused with impotence.


  • m-m
  • Registratie: Augustus 2001
  • Niet online

m-m

hmm ik heb 5 ledjes aan de printerpoort hangen voor visualisation, lijkt me wel geinig om er eentje bij te hangen voor network stats :), dus topicstarter, mocht je het vinden buiten GoT om, graag even posten!

  • Super Snackman
  • Registratie: Januari 2000
  • Laatst online: 18-07 11:51

Super Snackman

Snekgek

Ja hier spreekt broer van futureman :)

Ik heb dat programma in delphi geschreven. En het doet nu wattie wil. Gewoon aan lpt-poort 2 kastjes gehangen met 2 ledjes.

Het ene programma stuurt het ene kastje aan, het andere programma het andere. IP-adres is per programma instelbaar, net zoals welk(e) kastje(s) hij aan moet sturen.

Flevostrand rulez! - It's a bird NO It's a plane NO IT IS SUPER SNACKMAN


  • m-m
  • Registratie: Augustus 2001
  • Niet online

m-m

kan meneer de broer mij het programmatje mailen? Bij voorbaat grote dank :D :)

  • Tomaat
  • Registratie: November 2001
  • Laatst online: 13-05 13:50
jah, ik ben ook heel erg geïnterreseerd. Mijn Chello verbinding ligt er nogal vaak uit, en dan moet ik eerst helemaal naar bendedn lopen om mijn modem (die dus in de meterkast hangt) een rot shop te geven, zodat ie weer online gaat. Maar heel vaak is ie wel online, maar dan zit er gewoon intern bij mij iets fout, en dat kan ik dan dus makkelijker zien :)

P.s. Zou het ook mogelijk zijn dat programmaatje naar Linux te porten?

  • Super Snackman
  • Registratie: Januari 2000
  • Laatst online: 18-07 11:51

Super Snackman

Snekgek

Het programma is dus specifiek gemaakt om onze 2 kastjes aan te sturen. Heb ook nog wel een ander programma, die meet elk kwartier of internet eruit ligt. En berekent dan hoeveel je teveel hebt betaald voor internet, plus een logfile.

Alleen dat programma is gemaakt voor kabelnetwerk harderwijk.

Als me progs helemaal af zijn post ik de source wel

Greetz :D

Flevostrand rulez! - It's a bird NO It's a plane NO IT IS SUPER SNACKMAN


  • aP_
  • Registratie: Maart 2001
  • Laatst online: 30-06 15:35

aP_

Op woensdag 30 januari 2002 19:57 schreef da_man98 het volgende:
jah, ik ben ook heel erg geïnterreseerd. Mijn Chello verbinding ligt er nogal vaak uit, en dan moet ik eerst helemaal naar bendedn lopen om mijn modem (die dus in de meterkast hangt) een rot shop te geven, zodat ie weer online gaat. Maar heel vaak is ie wel online, maar dan zit er gewoon intern bij mij iets fout, en dat kan ik dan dus makkelijker zien :)

P.s. Zou het ook mogelijk zijn dat programmaatje naar Linux te porten?
moet je ff HIER kijken :)

of op de site van Servowire

Het is lastig om je specs up to date te houden


  • Super Snackman
  • Registratie: Januari 2000
  • Laatst online: 18-07 11:51

Super Snackman

Snekgek

Nou beter laat dan nooit, hier het linux c++ programma, beta 0.0.0.1. Enneuh (C) Snekgek enzo :)
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
#include <stdio.h>
#include <signal.h>
#include <string.h>
#include <sys/time.h>
#include <pthread.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
#include <fcntl.h>
#include <asm/io.h>

struct ping_parameters
{
 char ipadres[100];
 int groen;
 int rood;
};

struct parameter_pointer
{
 int getal;
};

struct ping_parameters pm[10];
int aantal;
int poortstatus[8];


void printer_uitvoer(int aan, int uit)
{
 int uitvoer = 0;
 if (aan == 1) poortstatus[0] = 1;
 if (aan == 2) poortstatus[1] = 1;
 if (aan == 4) poortstatus[2] = 1;
 if (aan == 8) poortstatus[3] = 1;
 if (aan == 16) poortstatus[4] = 1;
 if (aan == 32) poortstatus[5] = 1;
 if (aan == 64) poortstatus[6] = 1;
 if (aan == 128) poortstatus[7] = 1;
 if (uit == 1) poortstatus[0] = 0;
 if (uit == 2) poortstatus[1] = 0;
 if (uit == 4) poortstatus[2] = 0;
 if (uit == 8) poortstatus[3] = 0;
 if (uit == 16) poortstatus[4] = 0;
 if (uit == 32) poortstatus[5] = 0;
 if (uit == 64) poortstatus[6] = 0;
 if (uit == 128) poortstatus[7] = 0;
 if (poortstatus[0]) uitvoer = uitvoer + 1;
 if (poortstatus[1]) uitvoer = uitvoer + 2;
 if (poortstatus[2]) uitvoer = uitvoer + 4;
 if (poortstatus[3]) uitvoer = uitvoer + 8;
 if (poortstatus[4]) uitvoer = uitvoer + 16;
 if (poortstatus[5]) uitvoer = uitvoer + 32;
 if (poortstatus[6]) uitvoer = uitvoer + 64;
 if (poortstatus[7]) uitvoer = uitvoer + 128;
 outb(uitvoer, 0x0378);
 printf("Uitvoer naar lpt: %d\n",uitvoer);
}

void leesconfig()
{
 FILE* bestand;
 char regel[100]; 
 int teller;
 bestand= fopen("pinger.conf", "r");
 aantal = 0;

 while ( fgets(regel, 100, bestand))
 {
   aantal = aantal + 1;
   strncpy(pm[aantal].ipadres,  regel, strcspn(regel, ","))  ;
   strncpy(regel, regel + strcspn(regel, ",") + 1,  100);
   pm[aantal].groen = atoi(regel);
   strncpy(regel, regel+strcspn(regel,",")+1,100);
   pm[aantal].rood = atoi(regel);
 }
 fclose(bestand);
}

void* pinger(void* prs)
{
 int i, j;
 struct parameter_pointer* ppo = (struct parameter_pointer*) prs;
 char systeem[1024];
 j = ppo -> getal;
 strcpy(systeem, "ping "); 
 strcat(systeem, pm[j].ipadres);
 strcat(systeem, " -c3 -q >/dev/nul");
 printf ("%d, %s \n", j, pm[j].ipadres);
 i = system(systeem);
 if (i == 0)
 {  printer_uitvoer(pm[j].groen, pm[j].rood);
 }
 else
 { printer_uitvoer(pm[j].rood, pm[j].groen);
 }
}

void ping_handler(int signum)
{
 pthread_t pingthread[10];
 int i;
 struct parameter_pointer testen;
 for (i = 1; i <= aantal; i++)
 {
  testen.getal = i;
  pthread_create(&pingthread[i], NULL, &pinger, &testen);
 }

 
}


main()
{
 int i;
 struct sigaction sa;
 struct itimerval timer;
 memset (&sa, 0, sizeof(sa));
 sa.sa_handler=&ping_handler;
 sigaction(SIGVTALRM, &sa, NULL);
 timer.it_value.tv_sec = 20;
 timer.it_value.tv_usec = 000000;
 timer.it_interval.tv_sec = 20;
 timer.it_interval.tv_usec = 0000;
 setitimer (ITIMER_VIRTUAL, &timer, NULL);

 ioperm(0x378, 1, 1);
 for (i = 0; i < 8; i++)
  poortstatus[i] = 0; 
 leesconfig(); 
 while(1);
}

Flevostrand rulez! - It's a bird NO It's a plane NO IT IS SUPER SNACKMAN


  • Super Snackman
  • Registratie: Januari 2000
  • Laatst online: 18-07 11:51

Super Snackman

Snekgek

Enneuh hier de pinger.conf:
code:
1
2
3
212.187.34.1,1,2
212.187.34.1,4,8
212.187.34.1,16,32

De eerste entry is het ip adres, de tweede entry is de bit-waarde van het pinnetje waar het groene ledje voor dat ip aan hangt.
De derde entry is de bit-waarde van het pinnetje waar het rode ledje voor dat ip aan hangt
Entrys gescheiden door komma's
En de verschillende metingen door enters.



Compilen met cc test.c -lpthread -O1

Suk6 enzo

Oh jah, ik weet dat er veel mis is met mijn programma. Zoals de manier waarop ik niet de struct meegeef aan de pinger, maar een ''pointer'' naar de struct. Tevens bepaalde uitvoer is nog niet helemaal ok. Maar wieweet binnenkort 0.0.0.2 :) En ook een programma om de pinger.conf te maken.

Flevostrand rulez! - It's a bird NO It's a plane NO IT IS SUPER SNACKMAN


  • Super Snackman
  • Registratie: Januari 2000
  • Laatst online: 18-07 11:51

Super Snackman

Snekgek

En nu dan de makeconfig, om de pinger.conf te beheren. Wederom slecht gecoded, en versie 0.0.0.1 :)
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
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
#include <stdio.h>
#include <signal.h>
#include <stdlib.h>
#include <asm/io.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

void clrscr()
{
 printf("\033[H\033[2J");
}

void locate(int row, int col)
{
 printf("\033[%d;%dH", row, col);
}

struct ping_parameters
{
 char ipadres[100];
 int groen;
 int rood;
}

verwijder()
{
 FILE* bestand; 
 int wzg = 0;
 int aantal = 0;
 int verder = 0;
 int tonen;
 char regel[100];
 struct ping_parameters ppm[10];
 clrscr();
 for (tonen = 0; tonen < 10; tonen ++)
 {
  strcpy(ppm[tonen].ipadres, "         ");
  ppm[tonen].groen = 0;
  ppm[tonen].rood = 0;
 }

 locate (1,20); printf ("Pinger.conf programma");
 locate (3,10); printf ("-=Verwijdermenu=-");
 bestand = fopen("pinger.conf", "r");
 while ( fgets(regel, 100, bestand))
 {
  aantal++;
  strncpy(ppm[aantal].ipadres, regel, strcspn(regel, ","));
  strncpy(regel, regel + strcspn(regel, ",")+1,100);
  ppm[aantal].groen = atoi(regel);
  strncpy(regel, regel + strcspn(regel, ",")+1,100);
  ppm[aantal].rood = atoi(regel);
 }
 for (tonen = 1; tonen <= aantal; tonen++)
 {
  locate(4+tonen,10);
  printf ("Entry: %d   Ipadres: %15s   Pin groen: %2d    Pin rood: %2d", tonen, ppm[tonen].ipadres, ppm[tonen].groen, ppm[tonen].rood);
 }
 while (!verder)
 { 
  getchar();  
  locate(6+aantal,10);
  printf ("                                                ");
  locate(6+aantal,10);
  printf ("Geef de entry die u verwijderen wilt (of 0 voor hoofdmenu): ");
  wzg = getchar();
  wzg = wzg - 48;
  verder = 1;
  if (wzg < 1 || wzg > aantal) verder = 0;
  if (wzg == 0) return;
 }
 fclose(bestand);
 getchar();
 bestand = fopen("pinger.conf", "w");
 for (tonen = 1; tonen <= aantal; tonen ++)
 {
   if (tonen != wzg) fprintf(bestand, "%s,%d,%d\n", ppm[tonen].ipadres, ppm[tonen].groen,  ppm[tonen].rood); 
 }
 fclose(bestand);
 locate (8,10); printf ("De entry is verwijderd! (Druk op enter)"); 
 getchar();
}

wijzig()
{
 char ipadres[15];
 int groen;
 int rood;
 char invoer[15];
 char entry[19] = "";
 FILE* bestand; 
 int wzg = 0;
 int aantal = 0;
 int verder = 0;
 int tonen;
 char regel[100];
 struct ping_parameters ppm[10];
 for (tonen = 0; tonen < 10; tonen ++)
 {
  strcpy(ppm[tonen].ipadres, "         ");
  ppm[tonen].groen = 0;
  ppm[tonen].rood = 0;
 }

 clrscr();
 locate (1,20); printf ("Pinger.conf programma");
 locate (3,10); printf ("-=Wijzigmenu=-");
 bestand = fopen("pinger.conf", "r");
 while ( fgets(regel, 100, bestand))
 {
  aantal++;
  strncpy(ppm[aantal].ipadres, regel, strcspn(regel, ","));
  strncpy(regel, regel + strcspn(regel, ",")+1,100);
  ppm[aantal].groen = atoi(regel);
  strncpy(regel, regel + strcspn(regel, ",")+1,100);
  ppm[aantal].rood = atoi(regel);
 }
 for (tonen = 1; tonen <= aantal; tonen++)
 {
  locate(4+tonen,10);
  printf ("Entry: %d   Ipadres: %15s   Pin groen: %2d    Pin rood: %2d", tonen, ppm[tonen].ipadres, ppm[tonen].groen, ppm[tonen].rood);
 }
 while (!verder)
 { 
  getchar();  
  locate(6+aantal,10);
  printf ("                                                ");
  locate(6+aantal,10);
  printf ("Geef de entry die u wijzigen wilt (of 0 voor hoofdmenu): ");
  wzg = getchar();
  wzg = wzg - 48;
  verder = 1;
  if (wzg < 1 || wzg > aantal) verder = 0;
  if (wzg == 0) return;
 }
 getchar();
 createinvoer();
 fclose(bestand);

 verder=0;
 locate (5,10); 
 printf ("Geef het ipadres dat gepinged moet worden (was %s): ", ppm[wzg].ipadres);
 scanf ("%15s", ppm[wzg].ipadres);
 while (!verder)
 {
  locate (6,10); printf ("                                                                                    ");
  locate (6,10); printf ("Geef het nummer van het pinnetje waar het groene lampje aan hangt (was %d): ", ppm[wzg].groen);
  getchar();
  groen = getchar();
  groen = groen - 48;
  verder = 1; 
  if (groen < 1 || groen > 8) verder = 0;
 }

 verder = 0;
 while (!verder)
 {
  locate (7,10); printf ("                                                                                    ");
  locate (7,10); printf ("Geef het nummer van het pinnetje waar het rode lampje aan hangt (was %d): ", ppm[wzg].rood);
  getchar();
  rood = getchar();
  rood = rood - 48;
  verder = 1; 
  if (rood < 1 || rood > 8) verder = 0;
 }
 ppm[wzg].groen = groen;
 ppm[wzg].rood = rood;
 bestand = fopen("pinger.conf", "w");
 for (tonen = 1; tonen <= aantal; tonen ++)
 {
   fprintf(bestand, "%s,%d,%d\n", ppm[tonen].ipadres, ppm[tonen].groen,  ppm[tonen].rood); 
 }
 fclose(bestand);
 getchar();
 locate (8,10); printf ("De entry is gewijzig! (Druk op enter)"); 
 getchar();
}

createinvoer()
{
 clrscr();
 locate (1,20); printf ("Pinger.conf programma");
 locate (3,10); printf ("-=Invoermenu=-");
 locate (19,15);
 printf ("Overzicht printerpoort: (u kunt alleen pin 1 tot 8 gebruiken!)");
 locate (20,5);
 printf("------------------------------------------------------------------------------");
 locate (21,5);
 printf ("| .13   .12   .11   .10   .9    .8    .7    .6    .5    .4    .3    .2    .1 |");
 locate (22,5); 
 printf (" |                                                  |");
 locate (23,5);
 printf ("  \\  .25   .24   .23   .22   .21   .20   .19   .18   .17   .16   .15   .14 /");
 locate (24,5); 
 printf ("   ------------------------------------------------------------------------");
}

invr()
{
 int verder = 0;
 char ipadres[15];
 int groen;
 int rood;
 char invoer[15];
 char entry[19] = "";
 FILE* bestand;
 createinvoer();
 locate (5,10); printf ("Geef het ipadres dat gepinged moet worden: ");
 scanf ("%15s", invoer);
 while (!verder)
 {
  locate (6,10); printf ("                                                                                    ");
  locate (6,10); printf ("Geef het nummer van het pinnetje waar het groene lampje aan hangt: ");
  getchar();
  groen = getchar();
  groen = groen - 48;
  verder = 1; 
  if (groen < 1 || groen > 8) verder = 0;
 }

 verder = 0;
 while (!verder)
 {
  locate (7,10); printf ("                                                                                    ");
  locate (7,10); printf ("Geef het nummer van het pinnetje waar het rode lampje aan hangt: ");
  getchar();
  rood = getchar();
  rood = rood - 48;
  verder = 1; 
  if (rood < 1 || rood > 8) verder = 0;
 }
 //sprintf(entry, "%s,%d,%d", invoer, groen, rood);
 bestand = fopen("pinger.conf", "a");
 fprintf(bestand, "%s,%d,%d\n", invoer, groen, rood); 
 fclose(bestand);
 getchar();
 locate (8,10); printf ("De entry is toegevoegd! (Druk op enter)"); 
 getchar();
}

createmain()
{
 clrscr();
 locate (1, 20); printf ("Pinger.conf programma");
 locate (3,10);  printf ("-=Hoofdmenu=-");
 locate (5,10);  printf ("1. Voeg entry toe");
 locate (6,10);  printf ("2. Wijzig entry");
 locate (7,10);  printf ("3. Verwijder entry");
 locate (8,10);  printf ("4. Einde");
 locate (10,10); printf ("Type het menu van uw keuze: ");
}

main()
{
 int invoer;
 int verder = 0;
 while (!verder)
 {
  createmain();
  invoer = (int) getchar();
  if (invoer == 49) invr();
  if (invoer == 50) wijzig();
  if (invoer == 51) verwijder();
  if (invoer == 52) verder = 1;
 }
 clrscr();
}

Flevostrand rulez! - It's a bird NO It's a plane NO IT IS SUPER SNACKMAN

Pagina: 1