Socket

Socket - PHP - Programmation

Marsh Posté le 22-02-2008 à 12:21:58    

Bonjour à tous,
 
Je suis en train de développer un intranet pour l'association dont je fais parti qui organise des  
lan dans le Nord de la France, on ne sait pas encore si l'intranet tournera en local ou sur Internet.
J'ai récupéré une source qui ping les serveurs grâce aux sockets et indique s'ils sont online ou offline.
J'ai testé la source et elle fonctionne pour les sites web mais ma question est:
Est-ce que cela va fonctionner si je met des serveurs qui seront en ip locale type 192.168... (serveurs de jeux)
si l'application est sur le web?

Reply

Marsh Posté le 22-02-2008 à 12:21:58   

Reply

Marsh Posté le 22-02-2008 à 14:21:13    

A priori si tu ouvres les ports de ton routeur pour qu'il puisse pinger des ordis du réseau local, ca devrait marcher...


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
Reply

Marsh Posté le 22-02-2008 à 14:56:07    

c'est quoi les ports à ouvrir sur le routeur?

Reply

Marsh Posté le 22-02-2008 à 15:05:13    

Metabolicman a écrit :

J'ai récupéré une source qui ping les serveurs grâce aux sockets et indique s'ils sont online ou offline.


 
Concrètement, comment marche ton script ?


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
Reply

Marsh Posté le 22-02-2008 à 16:54:34    

J'y ai apporté quelque modifs pour qu'il fonctionne avec la bdd:
 

Code :
  1. <table border="0" align="center" class="affichage2" width="60%">
  2. <tr>
  3. <td align="center" colspan="5" class="affichage2" style="font-size:11px;">
  4. <font face="Arial, Helvetica, sans-serif"><b>Liste des serveurs</b></font>
  5. </td>
  6. </tr>
  7. <tr>
  8. <td align="center" class="affichage2" style="font-size:11px;">
  9. <b>Serveur.</b>
  10. </td>
  11. <td align="center" class="affichage2" style="font-size:11px;">
  12. <b>Adresse.</b>
  13. </td>
  14. <td align="center" class="affichage2" style="font-size:11px;">
  15. <b>Port.</b>
  16. </td>
  17. <td align="center" class="affichage2" style="font-size:11px;">
  18. <b>Statut.</b>
  19. </td>
  20. <td align="center" class="affichage2" style="font-size:11px;">
  21. <b>Ping.</b>
  22. </td>
  23. </tr>
  24. <?php
  25. $req="select nom,adresse,port from eGL_serveur where id_lan='".$_SESSION['id_lan_en_cours']."'";
  26. $res=eGL_query($req);
  27. $i=0;
  28. while($val=mysql_fetch_assoc($res))
  29. {
  30. $server[$i]['active'] = TRUE; // Autoriser ou non la connexion
  31. $server[$i]['nom']=$val['nom'];
  32. $server[$i]['port'] = $val['port']; // Port
  33. $server[$i]['addr'] = $val['adresse']; // adresse du server
  34. $i++;
  35. }
  36. function getmicrotime()
  37. {
  38. list ($usec, $sec) = explode(' ', microtime() );
  39. return ( (float) $usec + (float) $sec);
  40. }
  41. for ($i = 0; $i <= count($server); $i++)
  42. {
  43. if ($server[$i]['active'] == TRUE)
  44. {
  45. if (is_array($server[$i]['port']))
  46. {
  47. $port = array();
  48. $port = $server[$i]['port'];
  49. }
  50. else
  51. {
  52. $port = array();
  53. $port[0] = $server[$i]['port'];
  54. }
  55. for ($j = 0; $j < count($port); $j++)
  56. {
  57. echo '<tr><td align="center" class="affichage2" height="20" style="font-size:11px;">'."\n";
  58. echo $server[$i]['nom']."\n";
  59. echo '</td><td align="center" class="affichage2" height="20" style="font-size:11px;">'."\n";
  60. if ($j == 0)
  61. {
  62. echo $server[$i]['addr']."\n";
  63. }
  64. else
  65. {
  66. echo '&nbsp;'."\n";
  67. }
  68. echo '</td><td align="center" class="affichage2" style="font-size:11px;">'."\n";
  69. echo $port[$j]."\n";
  70. echo '</td><td align="center" class="affichage2" style="font-size:11px;">'."\n";
  71. $time_start = getmicrotime();
  72. if ( @fsockopen( $server[$i]['addr'], $port[$j], &$errno, &$errstr, 5) )
  73. {
  74. echo '<font color="#00CC00"><b>Online</b></font>'."\n";
  75. $time_end = getmicrotime();
  76. $ping = round(($time_end - $time_start) * 1000);
  77. }
  78. else
  79. {
  80. echo '<font color="#CC0000"><b>Offline</b></font>'."\n";
  81. $ping = '&gt;5000';
  82. }
  83. echo '</td><td align="center" class="affichage2" style="font-size:11px;">'."\n";
  84. echo $ping;
  85. echo '</td></tr>'."\n";
  86. }
  87. }
  88. }
  89. ?>
  90. </table>

Reply

Marsh Posté le 22-02-2008 à 17:02:19    

OK, c'est bien ce que je pensais. Tu attaques un port sur une adresse IP.
Sur ton routeur, tu vas dans les paramétrages NAT et là tu rediriges le port sur lequel tu vas pinger vers ton serveur et ca marchera peut-être (j'ai jamais essayé mais en théorie ca passe)


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
Reply

Marsh Posté le 22-02-2008 à 19:03:40    

oki merci je testerai lors de la LAN
 
Merci encore pour ton aide

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed