begin process at 2012 02 08 08:44:01
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

API

 > UTILISER L'IP CONTROLE

UTILISER L'IP CONTROLE


 Information sur la source

Note :
Aucune note
Catégorie :API Classé sous :ip, control, api, portscan, adressip Niveau :Débutant Date de création :01/01/2007 Vu / téléchargé :9 381 / 438

Auteur : wxccxw

Ecrire un message privé
Site perso
Commentaire sur cette source (11)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Il s'agit d'un code simple pour montrer comment on se sert de l'IP Control.
il convertira l'ip DWORD en CHAR *


 Conclusion

faite par de vos remarques.
Merci
PS : Merci a brunews (Pour m'avoir mis sur la voie, et m'avoir aider pour la conversion).

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture 2.0 GESTION DE LA RAM EN PROGRESS BAR [VC++] API WIN32
Source avec Zip Source avec une capture [VC++] API WIN32 : GESTION DE LA RAM EN PROGRESS BAR V 1.1

 Sources de la même categorie

Source avec Zip WIN32 TLS LENT par dguilmain
Source avec Zip VIDER ELEMENTS DE CORBEILLE WINDOWS7 (WIN64) par BruNews
Source avec Zip Source avec une capture FIND TEXT (WIN64) par BruNews
Source avec Zip DELETE DIRECTORY (WIN64) par BruNews
Source avec Zip ENUM DIRECTORY (WIN64) par BruNews

 Sources en rapport avec celle ci

Source avec Zip VIDER ELEMENTS DE CORBEILLE WINDOWS7 (WIN64) par BruNews
Source avec Zip Source avec une capture FIND TEXT (WIN64) par BruNews
Source avec Zip DELETE DIRECTORY (WIN64) par BruNews
Source avec Zip ENUM DIRECTORY (WIN64) par BruNews
Source avec Zip LIRE UNE IMAGE JPEG DEPUIS UNE ADRESSE IP par synopsism

Commentaires et avis

Commentaire de wxccxw le 01/01/2007 22:25:22

Merci de laisser vos commentaires,
j'ai oublier de preciser que de plus ce code posseder le style XP

Commentaire de BruNews le 01/01/2007 23:13:28 administrateur CS

oh le vilain sprintf...

void __stdcall bnIpFormatStr(DWORD dwip, char *psz)
{
  DWORD n;
  n = dwip >> 24;
  if(n < 100) *psz++ = '0';
  if(n < 10) *psz++ = '0';
  psz = bnultoa(n, psz);
  *psz++ = '.';
  n = (dwip >> 16) & 0xFF;
  if(n < 100) *psz++ = '0';
  if(n < 10) *psz++ = '0';
  psz = bnultoa(n, psz);
  *psz++ = '.';
  n = (dwip >> 8) & 0xFF;
  if(n < 100) *psz++ = '0';
  if(n < 10) *psz++ = '0';
  psz = bnultoa(n, psz);
  *psz++ = '.';
  dwip &= 0xFF;
  if(dwip < 100) *psz++ = '0';
  if(dwip < 10) *psz++ = '0';
  bnultoa(dwip, psz);
}

Commentaire de wxccxw le 01/01/2007 23:30:06

je vais rajouter sa. mais ne pense tu pas que cela aura une approche un peu difficile pour les debutants ?

Commentaire de BruNews le 01/01/2007 23:36:38 administrateur CS

Personne ne demande de comprendre bnultoa() comme on ne demande à personne de savoir l'implem de sprintf(), suffit de l'employer.
Par contre on peut au moins coder ce mini algo de formatage qui justifie la source, sinon quel intérêt.

Commentaire de BruNews le 01/01/2007 23:41:33 administrateur CS

J'ai vérifié, le compilo avait corrigé mon truc à la va vite mais comme ce n'est pas une raison je remets la forme correcte:void __stdcall bnIpFormatStr(DWORD dwip, char *psz)
{
  DWORD n;
  n = dwip >> 24;
  if(n < 100) {
    *psz++ = '0';
    if(n < 10) *psz++ = '0';
  }
  psz = bnultoa(n, psz);
  *psz++ = '.';
  n = (dwip >> 16) & 0xFF;
  if(n < 100) {
    *psz++ = '0';
    if(n < 10) *psz++ = '0';
  }
  psz = bnultoa(n, psz);
  *psz++ = '.';
  n = (dwip >> 8) & 0xFF;
  if(n < 100) {
    *psz++ = '0';
    if(n < 10) *psz++ = '0';
  }
  psz = bnultoa(n, psz);
  *psz++ = '.';
  dwip &= 0xFF;
  if(dwip < 100) {
    *psz++ = '0';
    if(dwip < 10) *psz++ = '0';
  }
  bnultoa(dwip, psz);
}

bien sur ne tester <10 QUE si est <100.

Commentaire de julienbj le 02/01/2007 11:39:50

J'avais juste une petite remarque quand au décalage de bits pour récupérer les différentes valeurs des champs, ne pourrais-tu pas utiliser une union pour ca?

typedef union u_ipfield
{
  struct
  {
    BYTE ip0;
    BYTE ip1;
    BYTE ip2;
    BYTE ip3;
  } desc;
  DWORD val;
} IPFIELD;

Comme ca pour récupérer la valeur du controle:
IPFIELD monIp;
SendDlgItemMessage(Dlg,IDC_IP,IPM_GETADDRESS, 0 ,(LPARAM) &(monIp.val));
et ensuite pour travailler sur les différents champs de ton ip:
monIp.desc.ip0 ou monIp.desc.ip1 etc...

Meme si tu n'utilises pas d'union, qu'est ce qui justifie l'utilisation de toutes ces variables globales? Normalement il n'y en a besoin d'aucune dans ton code.
Pas besoin de Dlg, tu ne t'en sers que dans ta winmain, alors mets cette variable dans le winmain!
Pour les autres, tu ne t'en sers que dans ta boucle de message, mets les uniquement dans ta boucle de message.

Commentaire de julienbj le 02/01/2007 11:44:37

Ah si une autre remarque!
Tu codes en quoi? C ou C++?

Parcque le new pour créer le buffer ca ressemble (et ca fait meme plus que ressembler) à du c++ alors que le reste de ton code est en C (sauf le placement de la variable MSG en plein milieu du code).

Qui plus est, on a bien un new, mais pas de delete! Attention, c'est comme un malloc sans free (en C)!

Commentaire de julienbj le 02/01/2007 11:49:45

Et encore une dernière pour la route!
Dans le traitement du IDCANCEL:
Pourquoi un PostQuitMessage? J'aurais utilisé un DestroyWindow et dans le message WM_DESTROY, j'aurais fait à ce moment la un PostQuitMessage.

Un passage de MSDN pour DestroyWindow:
"The function first destroys child or owned windows, and then it destroys the parent or owner window."

Voila, je crois que cette fois-ci ce sera tout. :D

Commentaire de wxccxw le 02/01/2007 15:43:27

merci je vais corriger tout sa dans la soiree.

Commentaire de decize le 02/01/2007 17:29:17

"Personne ne demande de comprendre bnultoa() comme on ne demande à personne de savoir l'implem de sprintf(), suffit de l'employer.
Par contre on peut au moins coder ce mini algo de formatage qui justifie la source, sinon quel intérêt."

Ca me pause un probleme, j'ai du mal à utiliser une fonction que je ne comprend pas.
Bien sur on a "man" ou tout autre recherche pour trouver le prototype et l'application de la fonction.
Mais de la à utiliser la fonction sans la comprendre ?
Je suis sur qu'avec une petite ligne de commentaire dans le code ce serait nikel ;).

Commentaire de BruNews le 02/01/2007 17:50:20 administrateur CS

bnultoa partout dans mes sources, comme ultoa() en moins idiot nettement plus rapide, retourne pointeur sur fin d'écriture.
http://www.cppfrance.com/code.aspx?ID=36937
dans bnIntA.h et c.

char buf[40], *c;
c = bnultoa(127, buf);
*c++ = '-';
bnultoa(25, c);
etc...
buf contient "127-25" sans strcat ni aucun reparcours stérile de la chaine.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

IP Address Control [ par zeratul67 ] Voila, c un common control que j'arrive pas à utiliser.----------- Extrait du code ---------------------INITCOMMONCONTROLSEX lpInitCtrls;lpInitCtrls.d questions diverses API [ par youpiyoyo ] j'aurai quelques petites questions a vous posés a propos des lists controls et des tab control en API win32 je debute dans la prog api win32 et pour l list control api win32 [ par ThePiepie12 ] g créer une list control avec l'option Report sous visual C++.Pb: je voudrais ajouter des colonnes à cette list control.Merci d'avance. IP CONTROL [ par T_Mehdi ] Salut^_____^.ma question est la suivante :j'aimerai s'avoir comment on peu recuperé l'adress IP apartir du control : IP CONTROL de IDE Visual C++merci Win API - Tree Control - Comment effacer ? [ par k_n1 ] Salut, j'ai une question qui va surement vous paraitre relativement simple mais sur laquelle je bloque, sans reussir a trouver de reponse ni ici ni s Spin control API win32 [ par ralebole ] Bonjour à tous J'ai un spin control dans une boite de dialogue associer à un edit. Mon probleme est quand je clique sur la fleche du bas cela augmente [API] graphique [ par Xs ] salut !bon, ca fait un bail que j'aimerai faire des graphique en C++. Mais la, je m'y attaque serieusement.la meilleur illustration de ce que je dis s API sous DOS [ par kip ] Est il possible d'utiliser les API a partir d'un programme DOS compilé par un compilateur DOS (turbo c++) Ceci dans la fenetre DOS de windows.merci d' TCP/IP [C++ Linux G++] Pas encore poste (?) [ par Niko2012 ] Bon, je suis en train de m'initier au tcp/ip sous linux et j'en bave...je recherche:-de bon tutoriels (si vous en connaissez en francais c mieux)-des erreur dans la bibliothèque control.h [ par ronaldo1 ] J'essai de faire un petit code de rendu directshow mais le compilateur détect des erreur dans la bibliothèque control.h (issue du SDK de Directx9.0 SU


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,357 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales