Bonjour à tous je suis embeté est ce que quelqu'un pourait me dire comment et quelle fonction utiliser dans mon programme pour récuperer le nom de ma machine ainsi que son adresse ip Merci
Bonjour à tous je suis embeté est ce que quelqu'un pourait me dire comment et quelle fonction utiliser dans mon programme pour récuperer le nom de ma machine ainsi que son adresse ip Merci
Sachant que le nom de la machine et l'adresse IP sont des concepts purement Windowsiens, je dirais que récupérer ces deux éléments est impossible, parce que Turbo Pascal est fait pour DOS... A moins que tu n'utilises un compilateur Windows, dans ce cas, il faudra chercher du coté des API . Pour le nom de la machine, il existe une fonction GetComputerName :
Pour l'IP, il faudra sûrement passer par un composant Internet...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 procedure TForm1.Button1Click(Sender: TObject); var buffer:array[0..255] of char; var size:cardinal; begin size:=256; GetComputerName(@buffer,size); ShowMessage(buffer); end;
a+
M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal
J'avoue alors que je suis très en retard et que j'ai pas compris grand chose a la programmation, j'ai voulus m'interesse a C++ et j'ai trouvé que c'etait pas le TOP donc unpeu trop complexe pour un debutant... pour apprendre a programmer des trucs sympa...
J'ai vraiment besoin d'un conseil que dois je choisir comme langage de programmation pour creer des programmes me permettant de recuperer mon adresse ip le nom de ma machine creer des exe me permettant d'automatiser des taches et tous ça en mode console donc dans une fenetre DOS.
Ma deuxième question serait est ce que turbo pascal 7.0 cree seulement des programme qui s'execute sous dos ??? et dans ces cas je comprend pas puisque je les execute dans une fenetre dos sous windows 2000...
Voila eclairez moi SVP Merci !!!
puisque que vous avez choisi Pascal plutôt que C++,
utilisez DevPascal (IDE) qui utilise FreePascal un compilateur 32bits
gratuit qui a accès aux API windows
http://bloodshed.ygto.com/dev/devpas192.exe
vous ne parlerez plus de fenêtre DOS mais de fenêtre console
Delphi est également capable de faire des applications en mode console.
Tu peux télécharger une version gratuite (Delphi Edition Personnelle) sur le site de Borland. Tu trouveras tous les liens nécessaires sur http://www.developpez.com .
Sinon, pour récupérer ton IP, voilà un exemple se servant de WinSocks :
(c'est du Delphi)
A+
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 program GetIP; uses Windows, WinSock, SysUtils; var WSData: WSAData; HostName: array[0..255] of Char; Host: PHostEnt; Error: Integer; IP: string; begin if WSAStartup($0001, WSData) <> 0 then begin MessageBox(0, 'Impossible d''initialiser WinSock !', 'GetIP', MB_ICONERROR or MB_OK); Halt(1); end; if WSData.wVersion <> $0001 then begin WSACleanup; MessageBox(0, 'Version incorrecte de WinSock !', 'GetIP', MB_ICONERROR or MB_OK); Halt(1); end; Error := GetHostName(HostName, SizeOf(HostName)); if Error <> 0 then begin MessageBox(0, 'Impossible de récupérer l''identificateur local de l''ordinateur !', 'GetIP', MB_ICONERROR or MB_OK); end else begin Host := GetHostByName(HostName); if Host <> nil then begin IP := 'Adresse IP identifiée avec succès : ' + IntToStr(Byte(Host^.H_Addr^[0])) + '.' + IntToStr(Byte(Host^.H_Addr^[1])) + '.' + IntToStr(Byte(Host^.H_Addr^[2])) + '.' + IntToStr(Byte(Host^.H_Addr^[3])); MessageBox(0, StrPCopy(HostName, IP), 'GetIP', MB_ICONINFORMATION or MB_OK); end else MessageBox(0, 'Impossible de retrouver l''adresse IP !', 'GetIP', MB_ICONERROR or MB_OK); end; WSACleanup; end.
le code de Hdd34 marche impec avec FreePascal
Merci pour toute votre réponses, je trouve le dernier code hyper long, et incompréhensible et je me demande si je comprendrais un jour de quoi il sagit !!!!! c peut etre parceque je suis débutant !!!! je sais pas ya pas unpeu plus simple sans la gestion des erreurs ça serait mieux plus court et plus facile a comprendre .... Merci !!!
Euh il faut dire que ce que tu essaies de faire est assez "compliqué" !!
Personnellement, j'ai commencé sous TP7 en faisant joujou avec la BGI... Tout le monde commence par Delphi maintenant, mais je pense pas que ce soit approprié, car le Pascal Objet ça s'apprend pas comme ça... Tu devrais peut-être faire quelques programmes avec TP7 pour t'habituer à la syntaxe et aux objets.
Pour répondre à une de tes questions, les programmes pour DOS sont exécutés sous XP car il contient un noyau DOS...
a+
M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal
On peut réduire considérablement le code, sans la gestion des erreurs. Mais je dégage toute responsabilité quant à un éventuel plantage !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 program GetIP; uses Windows, WinSock; var WSData: WSAData; HostName: array[0..255] of Char; Host: PHostEnt; begin { Initialisation de WinSocks } WSAStartup($0001, WSData); { Récupération du nom de l'ordinateur } GetHostName(HostName, SizeOf(HostName)); { Et récupération des infos sur l'ordinateur, dont l'IP } Host := GetHostByName(HostName); { Affichage de l'IP } WriteLn('IP: ', Host^.H_Addr^[0], '.', Host^.H_Addr^[1], '.', Host^.H_Addr^[2], '.', Host^.H_Addr^[3]); { Fermeture de WinSocks } WSACleanup; end.
Il y a moins de code "obscur" peut-être. Mais on pourra difficilement faire mieux avec WinSocks.
A+
Merci hdd34 c vraiment sympa je suis content j'apprend des choses Merci !!!
sous delphi 7 il y a un des composants indy qui renvoie l ip ... sinon , sa fias une ligne de code !!
6*8 =42
Certes, mais les composants Indy n'existent pas sur tous les compilateurs.
A+
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager