FORUM Syndrome-OC - Jacky-PC


  Programmation


  Autre


  Générer une liste de serveurs emule ".met" en PHP

 




Il y a 37 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici

 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Générer une liste de serveurs emule ".met" en PHP

n°6462
bap2703
Posté le 19-01-2006 à 11:55:37  profilanswer
 

J'aimerais créer une liste de serveurs emule à partir d'une page en PHP.
 
En fait ca servira pour un seul serveur qui n'a pas d'ip fixe dans une LAN où seul un serveur web à une ip fixe.
 
Le serveur emule se connecte au serveur web.
Celui ci récupère son ip et avec ele crée un fichier ".met" permettant de s'y connecter.
 
 
Mon problème est que je comprend pas comment est organisé ce fichier.
 
Quelqu'un aurait des infos ?

mood
Google
Posté le 19-01-2006 à 11:55:37  profilanswer
 

n°6464
Trracer
Posté le 19-01-2006 à 13:10:34  profilanswer
 

Tu peux aller à la peche aux infos dans le module Perl dedié à eDonkey/eMule sur le CPAN (ici). Je m'en etait inspiré pour bricoler un convertisseur de fichier .met.
Sinon il y la doc sur le protocol utilisé par eMule (pas mal d'info dedans) ici.

n°6471
bap2703
Posté le 19-01-2006 à 22:22:44  profilanswer
 

Dans cette archive : http://207.44.194.100/crackman.sof [...] .41324.rar
 
dans le fichier MetFile.vb, ligne 1343, il y a une fonction : WriteServerMetSection
 
 

Code :
  1. Public Sub WriteServerMetSection(ByRef Id As Integer, Optional ByRef FileNo As Integer = 1)
  2.         'Write Server.Met entry (database id passed)
  3.         Dim FilePosBackup, ExtraWritten, NumberTagPos As Integer
  4.         FilePut(FileNo, ServerBase(Id).IP)
  5.         FilePut(FileNo, ServerBase(Id).Port)
  6.         NumberTagPos = Seek(FileNo)
  7.         Seek(FileNo, NumberTagPos + 4)
  8.         If IniServerStripND = True Then
  9.             'reduce the file size by not writing unneccesary info, like server name,
  10.             ' description etc..  still write the tag, just with null strings.
  11.             Call WriteTag("", ServerTag.Name, FileNo)
  12.             Call WriteTag("", ServerTag.Description, FileNo)
  13.             Call WriteTag("", ServerTag.Version, FileNo)
  14.             'Reset some stats associated with the server too.. (this is really for
  15.             ' publishing server.met files with a small size)
  16.             Call WriteTag(0, ServerTag.FailCount, FileNo)
  17.             Call WriteTag(0, ServerTag.Preference, FileNo)
  18.         Else
  19.             Call WriteTag(ServerBase(Id).Name, ServerTag.Name, FileNo)
  20.             Call WriteTag(ServerBase(Id).Description, ServerTag.Description, FileNo)
  21.             Call WriteTag(ServerBase(Id).Version, ServerTag.Version, FileNo)
  22.             Call WriteTag(ServerBase(Id).Failed, ServerTag.FailCount, FileNo)
  23.             Call WriteTag(ServerBase(Id).Preference, ServerTag.Preference, FileNo)
  24.         End If
  25.         Call WriteTag("users", ServerBase(Id).Users, FileNo)
  26.         Call WriteTag("files", ServerBase(Id).Files, FileNo)
  27.         Call WriteTag(ServerBase(Id).Ping, ServerTag.Ping, FileNo)
  28.         If ServerBase(Id).NewLastPing <> 0 Then 'new stat here.. dunno why.. if new one is non-zero, then write it.. else write old one.
  29.             Call WriteTag(ServerBase(Id).NewLastPing, ServerTag.NewLastPing, FileNo)
  30.         Else
  31.             Call WriteTag(ServerBase(Id).LastPing, ServerTag.LastPing, FileNo)
  32.         End If
  33.         If ServerBase(Id).MaxUsers <> 0 Then
  34.             Call WriteTag(ServerBase(Id).MaxUsers, ServerTag.MaxUsers, FileNo)
  35.             ExtraWritten = ExtraWritten + 1
  36.         End If
  37.         If Len(ServerBase(Id).DynIp) <> 0 Then
  38.             Call WriteTag(ServerBase(Id).DynIp, ServerTag.DynIP, FileNo)
  39.             ExtraWritten = ExtraWritten + 1
  40.         End If
  41.         If ServerBase(Id).UDPFlags <> 0 Then
  42.             Call WriteTag(ServerBase(Id).UDPFlags, ServerTag.UDPFlags, FileNo)
  43.             ExtraWritten = ExtraWritten + 1
  44.         End If
  45.         FilePosBackup = Seek(FileNo)
  46.         Seek(FileNo, NumberTagPos)
  47.         ' Put the number of tags written before all the tags.. so jump back, write, then jump foward..
  48.         FilePut(FileNo, CInt(ExtraWritten + 9))
  49.         Seek(FileNo, FilePosBackup)
  50.     End Sub


 
 
C'est du VB :/
 
Dès le début, il écrit l'IP et le port du serveur.
C'est ce que j'ai trouvé en examinant des fichiers .met
 
Sauf que le port y est écrit en "inversé".
Exemple :  
port = 5500 = 0h157C
Et dans le fichier le port est ecrit dans l'ordre : 7C15
 
 
:pt1cable:

n°6472
Trracer
Posté le 19-01-2006 à 22:32:46  profilanswer
 

C'est normal il ecrit en little endian (les octets de poids faibles en premier), contrairement au big endian qui ecrit l'octet de poid fort en premier.

n°6473
bap2703
Posté le 19-01-2006 à 22:38:32  profilanswer
 

Mais je comprend pas comment est créé le fichier sans rien au départ.
 
Sur les fichiers .met que j'ai regardé, il y a 10 octets qui apparement ne servent pas.  
Puis il y a l'ip
Puis le port
Et le reste j'ai pas encore décrypté.

n°6474
Deadog
Dain Bramaged
Posté le 20-01-2006 à 00:00:15  profilanswer
 

t'as regardé sur http://www.wotsit.org/ ?
 
edit : ou http://www.filext.com/detaillist.p [...] rch=Search


Message édité par Deadog le 20-01-2006 à 00:01:22
n°6477
Trracer
Posté le 20-01-2006 à 09:42:20  profilanswer
 

Les premiers octets du .met sont des info de version (1 octet) et le nombre d'enregistrements. Ensuite commence la structure de données (ip, hashset, nbTags, tags).

n°6481
bap2703
Posté le 21-01-2006 à 14:40:12  profilanswer
 

C'est bon j'ai trouvé.
 
Le descriptif du fichier est ici :
http://www.amule.org/wiki/index.php/Server.met_file
 
Merci de voitre aide :)

n°6487
bap2703
Posté le 22-01-2006 à 13:33:39  profilanswer
 

Arf encore un problème.
 
J'arrive pas à écrire des données en binaire dans un fichier avec PHP.
 
J'ai une chaine de caractère avec les données en binaire à écrire, genre '1010'.
Et je voudrais que dans le fichier les nombres 1010 soient réellement inscrit : je me fout de leur représentation ascii.
 
Je sais pas comment faire :/

n°6488
bap2703
Posté le 22-01-2006 à 14:00:40  profilanswer
 

Suffit d'ouvrir le fichier avec 'wb' :D
 
 
Nan en fait c'est pas ca  :heink:


Message édité par bap2703 le 22-01-2006 à 14:03:51
n°6489
Trracer
Posté le 22-01-2006 à 14:58:55  profilanswer
 

Bha '1010' c'est 0x0A je vois pas ton problème avec le code Ascii :??:

n°6490
Deadog
Dain Bramaged
Posté le 22-01-2006 à 14:58:57  profilanswer
 

le mode binaire s'occupe juste de ne pas traduire les \n ;)

n°6491
bap2703
Posté le 22-01-2006 à 15:22:14  profilanswer
 

Exemple : je veux écrire un fichier de 1 octet qui en binaire  se résume à 11111111 (FF en hexadécimal)
 
Si je dis a PHP d'écrire 11111111, il va écrire le nombre 11111111 qui prend 8 octets (je vous épargne le binaire)

n°6493
bap2703
Posté le 22-01-2006 à 16:53:18  profilanswer
 

Mon fichier doit contenir ca :
 
000011100000000100000000000000000000000000000000000111110010100000011001001101010001001000000000000000000000000000000000
 
Pour l'instant j'ai une chaine avec des 0 et des 1, faut que j'arrive à l'écrire dans un fichier :/

n°6494
Deadog
Dain Bramaged
Posté le 22-01-2006 à 18:04:46  profilanswer
 

fwrite avec les valeurs numériques directement ?

n°6495
bap2703
Posté le 22-01-2006 à 18:55:17  profilanswer
 

Les valeurs numériques ?
Ca a pas de valeur, c'est juste une suite de bits qui veux dire un truc en utilisant le format des fichiers emule.
 
J'arrive à écrire les parties fixes de ce que je dois ecrire avec :
 
fwrite($fichier,"\x0E')
 
0E est le premier octet ici.
 
Mais si je fais :
fwrite($fichier,"\x".octet[2]);
ca marche pas :pt1cable:

n°6496
Deadog
Dain Bramaged
Posté le 22-01-2006 à 19:10:05  profilanswer
 

$octet = 14; // 14 = 0x0E
fwrite($fichier, $octet);


Message édité par Deadog le 22-01-2006 à 19:10:27
n°6497
Trracer
Posté le 22-01-2006 à 19:42:54  profilanswer
 

Je comprend pas, tu utilises une chaine en tant qu'element binaire du genre '10001000' ?  
Ils utilisent des flags bianires dans le .met si ma mémoire est bonne, dans ce cas c'est pas une chaine mais bel et bien un octet ou un word.
Pourquoi tu n'utilise pas un octet sur lequel tu masque les bits qui t'interessent ou non (opération binaire de base '&' et '|') ?

n°6498
bap2703
Posté le 22-01-2006 à 19:46:50  profilanswer
 

Parce qu'au départ je pensais que ca serait tout con d'écrire des bits stockés dans une chaine.
 
Je sais pas comment on manipule directement les octets.
Si je passe à ta méthode il faut que je récupère l'ip du visiteur et que je la convertisse en 4 octets mais pas sous forme de chaine.
 
 

n°6499
Deadog
Dain Bramaged
Posté le 22-01-2006 à 19:49:26  profilanswer
 

c'est certain

n°6500
bap2703
Posté le 22-01-2006 à 19:57:00  profilanswer
 

Deadog a écrit :

$octet = 14; // 14 = 0x0E
fwrite($fichier, $octet);


 
 
Oui mais ca ca écrit les caractères 1 et 4 dans le fichier.
Soit 0x31 et 0x34
Dans ton exemple moi j'aurais voulu écrire 0x0E

n°6501
Trracer
Posté le 22-01-2006 à 20:02:53  profilanswer
 

Non si ton fichier est ouvert en binaire tu ecriras 0x0E dans ton fichier...

n°6502
bap2703
Posté le 22-01-2006 à 20:17:44  profilanswer
 

Pour l'ouvrir en binaire c'est pas comme ca ?
 
$fichier = fopen ('test.met','wb');
 
J'ai toujours fait comme ca. Et il me semble que c'est juste pour les problèmes de compatibilité de changement de ligne entre les differentes os

n°6503
Deadog
Dain Bramaged
Posté le 22-01-2006 à 23:08:20  profilanswer
 

en effet, ça écrit "14"
 
il faut utiliser pack() j'ai l'impression


Message édité par Deadog le 22-01-2006 à 23:09:15
n°6505
bap2703
Posté le 22-01-2006 à 23:47:53  profilanswer
 

oui j'ai aussi trouvé cette instruction mais je capte pas tout.
 
En attendant j'ai fait un code a l'arrache pour au moins faire ce que je veux même si c'est pas beau
 
/!\ Bourrin /!\
 
<?
 
$ip = $_SERVER['REMOTE_ADDR'];
$ip_sans_points= split("\.",trim($ip));
 
echo 'Mise à jour du fichier server.met avec l\'ip : '.$ip;
echo '<br>';
 
 
$fichier = fopen ('./emule/server.met','wb');
fwrite($fichier,"\x0E\x01\x00\x00\x00" );  
 
for ($i=0;$i<=3;$i++)
{
 $octet_ip[$i] = strval(dechex($ip_sans_points[$i]));
 
 for ($j=strlen($octet_ip[$i]) ; $j<2; $j++)
 {
  $octet_ip[$i] = '0'.$octet_ip[$i];
 }
 
 switch($octet_ip[$i])
  {
   case '00':
    fwrite($fichier,"\x00" );  
    break;
   case '01':
    fwrite($fichier,"\x01" );  
    break;
   case '02':
    fwrite($fichier,"\x02" );  
    break;
   case '03':
    fwrite($fichier,"\x03" );  
    break;
   case '04':
    fwrite($fichier,"\x04" );  
    break;
   case '05':
    fwrite($fichier,"\x05" );  
    break;
   case '06':
    fwrite($fichier,"\x06" );  
    break;
   case '07':
    fwrite($fichier,"\x07" );  
    break;
   case '08':
    fwrite($fichier,"\x08" );  
    break;
   case '09':
    fwrite($fichier,"\x09" );  
    break;
   case '0a':
    fwrite($fichier,"\x0a" );  
    break;
   case '0b':
    fwrite($fichier,"\x0b" );  
    break;
   case '0c':
    fwrite($fichier,"\x0c" );  
    break;
   case '0d':
    fwrite($fichier,"\x0d" );  
    break;
   case '0e':
    fwrite($fichier,"\x0e" );  
    break;
   case '0f':
    fwrite($fichier,"\x0f" );  
    break;
   case '10':
    fwrite($fichier,"\x10" );  
    break;
   case '11':
    fwrite($fichier,"\x11" );  
    break;
   case '12':
    fwrite($fichier,"\x12" );  
    break;
   case '13':
    fwrite($fichier,"\x13" );  
    break;
   case '14':
    fwrite($fichier,"\x14" );  
    break;
   case '15':
    fwrite($fichier,"\x15" );  
    break;
   case '16':
    fwrite($fichier,"\x16" );  
    break;
   case '17':
    fwrite($fichier,"\x17" );  
    break;
   case '18':
    fwrite($fichier,"\x18" );  
    break;
   case '19':
    fwrite($fichier,"\x19" );  
    break;
   case '1a':
    fwrite($fichier,"\x1a" );  
    break;
   case '1b':
    fwrite($fichier,"\x1b" );  
    break;
   case '1c':
    fwrite($fichier,"\x1c" );  
    break;
   case '1d':
    fwrite($fichier,"\x1d" );  
    break;
   case '1e':
    fwrite($fichier,"\x1e" );  
    break;
   case '1f':
    fwrite($fichier,"\x1f" );  
    break;
   case '20':
    fwrite($fichier,"\x20" );  
    break;
   case '21':
    fwrite($fichier,"\x21" );  
    break;
   case '22':
    fwrite($fichier,"\x22" );  
    break;
   case '23':
    fwrite($fichier,"\x23" );  
    break;
   case '24':
    fwrite($fichier,"\x24" );  
    break;
   case '25':
    fwrite($fichier,"\x25" );  
    break;
   case '26':
    fwrite($fichier,"\x26" );  
    break;
   case '27':
    fwrite($fichier,"\x27" );  
    break;
   case '28':
    fwrite($fichier,"\x28" );  
    break;
   case '29':
    fwrite($fichier,"\x29" );  
    break;
   case '2a':
    fwrite($fichier,"\x2a" );  
    break;
   case '2b':
    fwrite($fichier,"\x2b" );  
    break;
   case '2c':
    fwrite($fichier,"\x2c" );  
    break;
   case '2d':
    fwrite($fichier,"\x2d" );  
    break;
   case '2e':
    fwrite($fichier,"\x2e" );  
    break;
   case '2f':
    fwrite($fichier,"\x2f" );  
    break;
   case '30':
    fwrite($fichier,"\x30" );  
    break;
   case '31':
    fwrite($fichier,"\x31" );  
    break;
   case '32':
    fwrite($fichier,"\x32" );  
    br2ak;
   case '33':
    fw2ite($fichier,"\x33" );  
    break;
   case '34':
    fwrite($fichier,"\x34" );  
    break;
   case '35':
    fwrite($fichier,"\x35" );  
    break;
   case '36':
    fwrite($fichier,"\x36" );  
    break;
   case '37':
    fwrite($fichier,"\x37" );  
    break;
   case '38':
    fwrite($fichier,"\x38" );  
    break;
   case '39':
    fwrite($fichier,"\x39" );  
    break;
   case '3a':
    fwrite($fichier,"\x3a" );  
    break;
   case '3b':
    fwrite($fichier,"\x3b" );  
    break;
   case '3c':
    fwrite($fichier,"\x3c" );  
    break;
   case '3d':
    fwrite($fichier,"\x3d" );  
    break;
   case '3e':
    fwrite($fichier,"\x3e" );  
    break;
   case '3f':
    fwrite($fichier,"\x3f" );  
    break;
   case '40':
    fwrite($fichier,"\x40" );  
    break;
   case '41':
    fwrite($fichier,"\x41" );  
    break;
   case '42':
    fwrite($fichier,"\x42" );  
    break;
   case '43':
    fwrite($fichier,"\x43" );  
    break;
   case '44':
    fwrite($fichier,"\x44" );  
    break;
   case '45':
    fwrite($fichier,"\x45" );  
    break;
   case '46':
    fwrite($fichier,"\x46" );  
    break;
   case '47':
    fwrite($fichier,"\x47" );  
    break;
   case '48':
    fwrite($fichier,"\x48" );  
    break;
   case '49':
    fwrite($fichier,"\x49" );  
    break;
   case '4a':
    fwrite($fichier,"\x4a" );  
    break;
   case '4b':
    fwrite($fichier,"\x4b" );  
    break;
   case '4c':
    fwrite($fichier,"\x4c" );  
    break;
   case '4d':
    fwrite($fichier,"\x4d" );  
    break;
   case '4e':
    fwrite($fichier,"\x4e" );  
    break;
   case '4f':
    fwrite($fichier,"\x4f" );  
    break;
   case '50':
    fwrite($fichier,"\x50" );  
    break;
   case '51':
    fwrite($fichier,"\x51" );  
    break;
   case '52':
    fwrite($fichier,"\x52" );  
    break;
   case '53':
    fwrite($fichier,"\x53" );  
    break;
   case '54':
    fwrite($fichier,"\x54" );  
    break;
   case '55':
    fwrite($fichier,"\x55" );  
    break;
   case '56':
    fwrite($fichier,"\x56" );  
    break;
   case '57':
    fwrite($fichier,"\x57" );  
    break;
   case '58':
    fwrite($fichier,"\x58" );  
    break;
   case '59':
    fwrite($fichier,"\x59" );  
    break;
   case '5a':
    fwrite($fichier,"\x5a" );  
    break;
   case '5b':
    fwrite($fichier,"\x5b" );  
    break;
   case '5c':
    fwrite($fichier,"\x5c" );  
    break;
   case '5d':
    fwrite($fichier,"\x5d" );  
    break;
   case '5e':
    fwrite($fichier,"\x5e" );  
    break;
   case '5f':
    fwrite($fichier,"\x5f" );  
    break;
   case '60':
    fwrite($fichier,"\x60" );  
    break;
   case '61':
    fwrite($fichier,"\x61" );  
    break;
   case '62':
    fwrite($fichier,"\x62" );  
    break;
   case '63':
    fwrite($fichier,"\x63" );  
    break;
   case '64':
    fwrite($fichier,"\x64" );  
    break;
   case '65':
    fwrite($fichier,"\x65" );  
    break;
   case '66':
    fwrite($fichier,"\x66" );  
    break;
   case '67':
    fwrite($fichier,"\x67" );  
    break;
   case '68':
    fwrite($fichier,"\x68" );  
    break;
   case '69':
    fwrite($fichier,"\x69" );  
    break;
   case '6a':
    fwrite($fichier,"\x6a" );  
    break;
   case '6b':
    fwrite($fichier,"\x6b" );  
    break;
   case '6c':
    fwrite($fichier,"\x6c" );  
    break;
   case '6d':
    fwrite($fichier,"\x6d" );  
    break;
   case '6e':
    fwrite($fichier,"\x6e" );  
    break;
   case '6f':
    fwrite($fichier,"\x6f" );  
    break;
   case '70':
    fwrite($fichier,"\x70" );  
    break;
   case '71':
    fwrite($fichier,"\x71" );  
    break;
   case '72':
    fwrite($fichier,"\x72" );  
    break;
   case '73':
    fwrite($fichier,"\x73" );  
    break;
   case '74':
    fwrite($fichier,"\x74" );  
    break;
   case '75':
    fwrite($fichier,"\x75" );  
    break;
   case '76':
    fwrite($fichier,"\x76" );  
    break;
   case '77':
    fwrite($fichier,"\x77" );  
    break;
   case '78':
    fwrite($fichier,"\x78" );  
    break;
   case '79':
    fwrite($fichier,"\x79" );  
    break;
   case '7a':
    fwrite($fichier,"\x7a" );  
    break;
   case '7b':
    fwrite($fichier,"\x7b" );  
    break;
   case '7c':
    fwrite($fichier,"\x7c" );  
    break;
   case '7d':
    fwrite($fichier,"\x7d" );  
    break;
   case '7e':
    fwrite($fichier,"\x7e" );  
    break;
   case '7f':
    fwrite($fichier,"\x7f" );  
    break;
   case '80':
    fwrite($fichier,"\x80" );  
    break;
   case '81':
    fwrite($fichier,"\x81" );  
    break;
   case '82':
    fwrite($fichier,"\x82" );  
    break;
   case '83':
    fwrite($fichier,"\x83" );  
    break;
   case '84':
    fwrite($fichier,"\x84" );  
    break;
   case '85':
    fwrite($fichier,"\x85" );  
    break;
   case '86':
    fwrite($fichier,"\x86" );  
    break;
   case '87':
    fwrite($fichier,"\x87" );  
    break;
   case '88':
    fwrite($fichier,"\x88" );  
    break;
   case '89':
    fwrite($fichier,"\x89" );  
    break;
   case '8a':
    fwrite($fichier,"\x8a" );  
    break;
   case '8b':
    fwrite($fichier,"\x8b" );  
    break;
   case '8c':
    fwrite($fichier,"\x8c" );  
    break;
   case '8d':
    fwrite($fichier,"\x8d" );  
    break;
   case '8e':
    fwrite($fichier,"\x8e" );  
    break;
   case '8f':
    fwrite($fichier,"\x8f" );  
    break;
   case '90':
    fwrite($fichier,"\x90" );  
    break;
   case '91':
    fwrite($fichier,"\x91" );  
    break;
   case '92':
    fwrite($fichier,"\x92" );  
    break;
   case '93':
    fwrite($fichier,"\x93" );  
    break;
   case '94':
    fwrite($fichier,"\x94" );  
    break;
   case '95':
    fwrite($fichier,"\x95" );  
    break;
   case '96':
    fwrite($fichier,"\x96" );  
    break;
   case '97':
    fwrite($fichier,"\x97" );  
    break;
   case '98':
    fwrite($fichier,"\x98" );  
    break;
   case '99':
    fwrite($fichier,"\x99" );  
    break;
   case '9a':
    fwrite($fichier,"\x9a" );  
    break;
   case '9b':
    fwrite($fichier,"\x9b" );  
    break;
   case '9c':
    fwrite($fichier,"\x9c" );  
    break;
   case '9d':
    fwrite($fichier,"\x9d" );  
    break;
   case '9e':
    fwrite($fichier,"\x9e" );  
    break;
   case '9f':
    fwrite($fichier,"\x9f" );  
    break;
   case 'a0':
    fwrite($fichier,"\xa0" );  
    break;
   case 'a1':
    fwrite($fichier,"\xa1" );  
    break;
   case 'a2':
    fwrite($fichier,"\xa2" );  
    break;
   case 'a3':
    fwrite($fichier,"\xa3" );  
    break;
   case 'a4':
    fwrite($fichier,"\xa4" );  
    break;
   case 'a5':
    fwrite($fichier,"\xa5" );  
    break;
   case 'a6':
    fwrite($fichier,"\xa6" );  
    break;
   case 'a7':
    fwrite($fichier,"\xa7" );  
    break;
   case 'a8':
    fwrite($fichier,"\xa8" );  
    break;
   case 'a9':
    fwrite($fichier,"\xa9" );  
    break;
   case 'aa':
    fwrite($fichier,"\xaa" );  
    break;
   case 'ab':
    fwrite($fichier,"\xab" );  
    break;
   case 'ac':
    fwrite($fichier,"\xac" );  
    break;
   case 'ad':
    fwrite($fichier,"\xad" );  
    break;
   case 'ae':
    fwrite($fichier,"\xae" );  
    break;
   case 'af':
    fwrite($fichier,"\xaf" );  
    break;
   case 'b0':
    fwrite($fichier,"\xb0" );  
    break;
   case 'b1':
    fwrite($fichier,"\xb1" );  
    break;
   case 'b2':
    fwrite($fichier,"\xb2" );  
    break;
   case 'b3':
    fwrite($fichier,"\xb3" );  
    break;
   case 'b4':
    fwrite($fichier,"\xb4" );  
    break;
   case 'b5':
    fwrite($fichier,"\xb5" );  
    break;
   case 'b6':
    fwrite($fichier,"\xb6" );  
    break;
   case 'b7':
    fwrite($fichier,"\xb7" );  
    break;
   case 'b8':
    fwrite($fichier,"\xb8" );  
    break;
   case 'b9':
    fwrite($fichier,"\xb9" );  
    break;
   case 'ba':
    fwrite($fichier,"\xba" );  
    break;
   case 'bb':
    fwrite($fichier,"\xbb" );  
    break;
   case 'bc':
    fwrite($fichier,"\xbc" );  
    break;
   case 'bd':
    fwrite($fichier,"\xbd" );  
    break;
   case 'be':
    fwrite($fichier,"\xbe" );  
    break;
   case 'bf':
    fwrite($fichier,"\xbf" );  
    break;
   case 'c0':
    fwrite($fichier,"\xc0" );  
    break;
   case 'c1':
    fwrite($fichier,"\xc1" );  
    break;
   case 'c2':
    fwrite($fichier,"\xc2" );  
    break;
   case 'c3':
    fwrite($fichier,"\xc3" );  
    break;
   case 'c4':
    fwrite($fichier,"\xc4" );  
    break;
   case 'c5':
    fwrite($fichier,"\xc5" );  
    break;
   case 'c6':
    fwrite($fichier,"\xc6" );  
    break;
   case 'c7':
    fwrite($fichier,"\xc7" );  
    break;
   case 'c8':
    fwrite($fichier,"\xc8" );  
    break;
   case 'c9':
    fwrite($fichier,"\xc9" );  
    break;
   case 'ca':
    fwrite($fichier,"\xca" );  
    break;
   case 'cb':
    fwrite($fichier,"\xcb" );  
    break;
   case 'cc':
    fwrite($fichier,"\xcc" );  
    break;
   case 'cd':
    fwrite($fichier,"\xcd" );  
    break;
   case 'ce':
    fwrite($fichier,"\xce" );  
    break;
   case 'cf':
    fwrite($fichier,"\xcf" );  
    break;
   case 'd0':
    fwrite($fichier,"\xd0" );  
    break;
   case 'd1':
    fwrite($fichier,"\xd1" );  
    break;
   case 'd2':
    fwrite($fichier,"\xd2" );  
    break;
   case 'd3':
    fwrite($fichier,"\xd3" );  
    break;
   case 'd4':
    fwrite($fichier,"\xd4" );  
    break;
   case 'd5':
    fwrite($fichier,"\xd5" );  
    break;
   case 'd6':
    fwrite($fichier,"\xd6" );  
    break;
   case 'd7':
    fwrite($fichier,"\xd7" );  
    break;
   case 'd8':
    fwrite($fichier,"\xd8" );  
    break;
   case 'd9':
    fwrite($fichier,"\xd9" );  
    break;
   case 'da':
    fwrite($fichier,"\xda" );  
    break;
   case 'db':
    fwrite($fichier,"\xdb" );  
    break;
   case 'dc':
    fwrite($fichier,"\xdc" );  
    break;
   case 'dd':
    fwrite($fichier,"\xdd" );  
    break;
   case 'de':
    fwrite($fichier,"\xde" );  
    break;
   case 'df':
    fwrite($fichier,"\xdf" );  
    break;
   case 'e0':
    fwrite($fichier,"\xe0" );  
    break;
   case 'e1':
    fwrite($fichier,"\xe1" );  
    break;
   case 'e2':
    fwrite($fichier,"\xe2" );  
    break;
   case 'e3':
    fwrite($fichier,"\xe3" );  
    break;
   case 'e4':
    fwrite($fichier,"\xe4" );  
    break;
   case 'e5':
    fwrite($fichier,"\xe5" );  
    break;
   case 'e6':
    fwrite($fichier,"\xe6" );  
    break;
   case 'e7':
    fwrite($fichier,"\xe7" );  
    break;
   case 'e8':
    fwrite($fichier,"\xe8" );  
    break;
   case 'e9':
    fwrite($fichier,"\xe9" );  
    break;
   case 'ea':
    fwrite($fichier,"\xea" );  
    break;
   case 'eb':
    fwrite($fichier,"\xeb" );  
    break;
   case 'ec':
    fwrite($fichier,"\xec" );  
    break;
   case 'ed':
    fwrite($fichier,"\xed" );  
    break;
   case 'ee':
    fwrite($fichier,"\xee" );  
    break;
   case 'ef':
    fwrite($fichier,"\xef" );  
    break;
   case 'f0':
    fwrite($fichier,"\xf0" );  
    break;
   case 'f1':
    fwrite($fichier,"\xf1" );  
    break;
   case 'f2':
    fwrite($fichier,"\xf2" );  
    break;
   case 'f3':
    fwrite($fichier,"\xf3" );  
    break;
   case 'f4':
    fwrite($fichier,"\xf4" );  
    break;
   case 'f5':
    fwrite($fichier,"\xf5" );  
    break;
   case 'f6':
    fwrite($fichier,"\xf6" );  
    break;
   case 'f7':
    fwrite($fichier,"\xf7" );  
    break;
   case 'f8':
    fwrite($fichier,"\xf8" );  
    break;
   case 'f9':
    fwrite($fichier,"\xf9" );  
    break;
   case 'fa':
    fwrite($fichier,"\xfa" );  
    break;
   case 'fb':
    fwrite($fichier,"\xfb" );  
    break;
   case 'fc':
    fwrite($fichier,"\xfc" );  
    break;
   case 'fd':
    fwrite($fichier,"\xfd" );  
    break;
   case 'fe':
    fwrite($fichier,"\xfe" );  
    break;
   case 'ff':
    fwrite($fichier,"\xff" );  
    break;
  }
 
}
 
fwrite($fichier,"\x35\x12\x00\x00\x00\x00" );
fclose ($fichier);
echo 'Terminé'
?>
 
 
 
 [:rofl]  [:matleflou]


Message édité par bap2703 le 22-01-2006 à 23:48:13
n°6507
nicodache
marmotte en chocolat concept ©
Posté le 22-01-2006 à 23:59:39  profilanswer
 

remplacer
 
switch($octet_ip[$i])
  {
   case '00':
    fwrite($fichier,"\x00" );  
    break;
   case '01':
    fwrite($fichier,"\x01" );  
    break;  
  }
 
par
 
fwrite($fichier,"\x".$octet_ip[$i]);  
 
:o


Message édité par nicodache le 23-01-2006 à 00:00:40

---------------
modérateur inside [:nicodache] plankaivoo [:nicodache] - ici powered - Je roule en micra 1l 55cv et je t'emmerde :o
n°6509
bap2703
Posté le 23-01-2006 à 00:03:47  profilanswer
 

ca marche pas :o
 
sinon je me serais pas fait chier a faire ca !

n°6510
nicodache
marmotte en chocolat concept ©
Posté le 23-01-2006 à 00:10:37  profilanswer
 

ca marche pas ? Oo
 
$plop = $octet_ip[$i];
$itou = "\x".$plop;
fwrite($fichier,$itou);
 
:o


---------------
modérateur inside [:nicodache] plankaivoo [:nicodache] - ici powered - Je roule en micra 1l 55cv et je t'emmerde :o
n°6511
bap2703
Posté le 23-01-2006 à 00:11:20  profilanswer
 

non plus. (moi j'avais testé avec $x et $lol ) [:matleflou]

n°6512
nicodache
marmotte en chocolat concept ©
Posté le 23-01-2006 à 00:12:50  profilanswer
 

echo $itou; pour voir ce qu'il affiche ;)


Message édité par nicodache le 23-01-2006 à 00:12:56

---------------
modérateur inside [:nicodache] plankaivoo [:nicodache] - ici powered - Je roule en micra 1l 55cv et je t'emmerde :o
n°6513
Deadog
Dain Bramaged
Posté le 23-01-2006 à 00:41:48  profilanswer
 

il va interpréter le \x avant de faire la concaténation

n°6514
bap2703
Posté le 23-01-2006 à 00:46:17  profilanswer
 

Oui c'est ce que je me suis dis, mais j'ai pas trouvé de solution.
 
Alors je me suis dit que comme ca me fesait chier, j'allais lui montrer qui c'était le maitre :D

n°6515
Deadog
Dain Bramaged
Posté le 23-01-2006 à 01:00:30  profilanswer
 

bap2703 a écrit :

Oui c'est ce que je me suis dis, mais j'ai pas trouvé de solution.
 
Alors je me suis dit que comme ca me fesait chier, j'allais lui montrer qui c'était le maitre :D


 
 
et qui c'était le porc aussi :d

n°6516
Trracer
Posté le 23-01-2006 à 09:46:03  profilanswer
 

Ah ouais exact, php ne prend en compte que les string dans fwrite() (ce qui est d'une stupidité affligeante...).
Bha comme l'a si justement dit Deadog, utilise pack ( $b = pack("h*", $str); ) ça devrait regler le problème.


Message édité par Trracer le 23-01-2006 à 09:46:23
n°6517
nicodache
marmotte en chocolat concept ©
Posté le 23-01-2006 à 13:21:05  profilanswer
 

bon, donc il fait chier comme ca lui ?
 
$plop = "\x";
$plop .= $octet_ip[$i];
 
ca marche bien sur pas non plus ca ?
 
pas plus que
 
$plop = "\x";
$truc = $octet_ip[$i];
$final = $plop.$truc;
 
je suppose :pfff:  
 
php sapu :o


---------------
modérateur inside [:nicodache] plankaivoo [:nicodache] - ici powered - Je roule en micra 1l 55cv et je t'emmerde :o
mood
Google
Posté le 23-01-2006 à 13:21:05  profilanswer
 


Aller à :
Ajouter une réponse

  FORUM Syndrome-OC - Jacky-PC


  Programmation


  Autre


  Générer une liste de serveurs emule ".met" en PHP

 

Hit Parade