Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1755 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Socket

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Socket

n°1690612
Metabolicm​an
Posté le 22-02-2008 à 12:21:58  profilanswer
 

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?

mood
Publicité
Posté le 22-02-2008 à 12:21:58  profilanswer
 

n°1690677
babasss
Posté le 22-02-2008 à 14:21:13  profilanswer
 

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
n°1690727
Metabolicm​an
Posté le 22-02-2008 à 14:56:07  profilanswer
 

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

n°1690736
babasss
Posté le 22-02-2008 à 15:05:13  profilanswer
 

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
n°1690884
Metabolicm​an
Posté le 22-02-2008 à 16:54:34  profilanswer
 

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>

n°1690895
babasss
Posté le 22-02-2008 à 17:02:19  profilanswer
 

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
n°1690965
Metabolicm​an
Posté le 22-02-2008 à 19:03:40  profilanswer
 

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


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Socket

 

Sujets relatifs
[C/C++] Problème - Socket / Adresse IPsocket
sequencement socket lié a un formulaireLecture sur socket
[Thread/Socket] Serveur et client à la foisProbleme Socket Raw
Problème de SocketException sur socket
Moteur PHP5 gestion de socket.C# > Thread + Socket : Passage par parametre, je galere !
Plus de sujets relatifs à : Socket


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR