Accueil > Forum > > > > IP Manager
IP Manager
jeudi 6 août 2009 à 17:27:21 |
IP Manager

Elixyr
|
Bonjour a tous,
Alors voila: en fait je suis en train de faire un "IP Manager"... fenetre qui permet d'afficher son Adresse IP en un clic... ca c'est ok, je me suis fait une belle fenetre.
On clic, ca marche.
Par contre, j'aimerais en faite acceder directement au meme possibilité que la fenetre parametre TCP/IP pour modifier soit meme sont adresse avec le masque ou cliquer pour obtenir "automatiquement" une adresse IP.
Quelqu'un pourrait m'aider a inserer ca dans mon projet.
Merciiiiiiii
|
|
samedi 8 août 2009 à 11:55:59 |
Re : IP Manager
|
samedi 8 août 2009 à 14:01:22 |
Re : IP Manager

Elixyr
|
Hello,
Merci pour ta réponse (ainsi que pour le MP de Glarys)
Après beaucoup de recherche j'ai trouvé quelques code sources (rt15 ton IpHelper semblerai exactement ce que je cherche)
Par contre il m'es impossible d'intégrer aucun des codes sources trouvé, même le faire en exe seul. Quand je l'insere il me trouve des tonnes d'erreur et impossible de les compiler. J'suis débutant en la matière (mes cours remontent a trop loin) alors je vous explique même pas la galère. Je nage en eau trouble
Est ce que une âme charitable serait capable de m'insérer ça dans mon projet existant??
|
|
samedi 8 août 2009 à 14:21:43 |
Re : IP Manager
|
samedi 8 août 2009 à 15:13:22 |
Re : IP Manager

Elixyr
|
Ca dans ma fenetre actuelle faite sous Visual C++ serait l'ideal:
http://www.csharpfr.com/codes/MODIFIER-CONFIGURATION-RESEAU-LOCAL_45374.aspx
|
|
samedi 8 août 2009 à 15:15:06 |
Re : IP Manager

Elixyr
|
me renvoi sur des Newsgroup, je sais pas si j'ose les mettres ici??
|
|
samedi 8 août 2009 à 15:55:19 |
Re : IP Manager
|
samedi 8 août 2009 à 16:04:04 |
Re : IP Manager
|
samedi 8 août 2009 à 17:49:49 |
Re : IP Manager

Elixyr
|
J'veux pas semer la zizanie... mais bon voici son message:
Message :
Si c'est sous Windows, ça se fait facilement avec les apis Win32.
Dans ce cas, tu peux demander sur le newsgroup professionnel des apis Win32 :
news://nntp.aioe.org/fr.comp.os.ms-windows.programmation
ou
http://tinyurl.com/cvd7wv par Google
(C et C++, Microsoft)
=================================================
Pour le netsh, j'ai vu ca, je pensais que c'était obligatoire.
En fait j'viens de tomber sur le GetmyIP, code ressemblant au miens sous VC++... j'aurais aimer combiner celui ci avec le lien au dessus et par la suite encore ajouter des fonction que j'ai dans un bouquin.. donc une interface graphique aurait été sympa... merci de ton aide.
|
|
samedi 8 août 2009 à 18:08:55 |
Re : IP Manager

rt15
|
Merci.
Bon il nous enlève les gens, mais au moins il reste poli. Au moins.
GetMyIp, si c'est celui là, c'est du winsock. Donc tu peux lire l'IP mais pas la changer ou la renouveler.
J'ai fait quelques essais avec IPHelper. Mais bon le problème avec le renew c'est que le dhcp a tendance à refiler la même adresse... Donc je suis pas sûr à 100% que ça fonctionne !
D'autre part, mon code ne fonctionne a coup sûr que s'il n'y a une carte réseau sur le PC, et qu'une IP sur cette carte.
Application console. Pour compiler sous gcc, ajouter -nostartfiles -nodefaultlibs -nostdlib -ffreestanding dans les options du lieur.
Pour compiler sous VC, s'arranger pour que le lieur ignore toutes les librairies par défaut (/nodefaultlib).
Sous VC, en cas d'erreur LNK2001 : __chkesp symbole externe non résolu -> Enlever /GZ des options de compilation
Code C/C++ : #ifdef UNICODE
#define _UNICODE
#endif /* UNICODE */
#include <windows.h>
#include <iphlpapi.h>
#include <tchar.h>
/**
* Alloue une zone mémoire en utilisant VirtualAlloc
*
* @param nSize Taille de la zone à allouer
* @return Pointeur sur la zone allouée
*/
void* __stdcall Mem_Alloc(const DWORD nSize)
{
return VirtualAlloc(NULL, nSize,
MEM_RESERVE | MEM_COMMIT,
PAGE_READWRITE);
}
/**
* Libère une zone mémoire allouée avec Mem_Alloc
*
* @param Pointeur sur la zone allouée
*/
void __stdcall Mem_Free(void *lpAddress)
{
VirtualFree(lpAddress, 0, MEM_RELEASE);
}
/**
* Affiche le texte indiqué dans la console
*
* @param lpText Texte à écrire dans la console
* @return FALSE en cas de problème
*/
BOOL __stdcall Con_WriteLn(const TCHAR *lpText)
{
DWORD nWritten; /* Réception du nombre de caractère écris */
char *lpOemText; /* Texte traduit en OEM */
DWORD nSize; /* Taille du texte à écrire */
BOOL bResult;
/* Traduction des caractère àùéè... */
nSize = lstrlen(lpText);
/* On aura un \n en plus */
nSize++;
lpOemText = (char*)Mem_Alloc(nSize);
CharToOem(lpText, lpOemText);
lstrcatA(lpOemText, "\n");
bResult = WriteFile(GetStdHandle(STD_OUTPUT_HANDLE), lpOemText,
nSize, &nWritten, NULL);
Mem_Free(lpOemText);
return bResult;
}
/**
* Affiche un message d'erreur correspondant à la dernière erreur Win32
*/
DWORD __stdcall Sys_ShowLastError()
{
DWORD nLastError; /* Numéro de l'erreur */
LPTSTR lpMessageBuffer; /* Récupération du message */
nLastError = GetLastError();
/* Formatage du message */
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
NULL, nLastError, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(void*)&lpMessageBuffer, 0, NULL);
/* Affichage du message */
MessageBox(NULL, lpMessageBuffer, _T("ERROR"), MB_OK | MB_ICONERROR);
LocalFree(lpMessageBuffer);
return nLastError;
}
/**
* Convertit un char en TCHAR
*/
void __stdcall Str_AnsiToTChar(TCHAR* lpBuffer, int nBufferCharCount,
char* lpStringToConvert)
{
#ifdef UNICODE
MultiByteToWideChar(CP_ACP, 0,
lpStringToConvert, -1,
(WCHAR*)lpBuffer, nBufferCharCount);
#else
lstrcpy(lpBuffer, lpStringToConvert);
#endif
}
/**
* Renvoie les infos sur les adapters
*
* Après utilisation, il faut libérer les infos retournées avec Mem_Free.
* Renvoie NULL en cas d'erreur.
*/
IP_ADAPTER_INFO* __stdcall RetrieveAdaptersInfo()
{
DWORD nOutBufLen; /* Taille de la zone à allouer pour les infos */
PIP_ADAPTER_INFO lpResult;
/* Récupération de la taille à allouer et allocation */
nOutBufLen = 0;
GetAdaptersInfo(NULL, &nOutBufLen);
lpResult = (PIP_ADAPTER_INFO)Mem_Alloc(nOutBufLen);
/* Récupération des infos */
if (GetAdaptersInfo(lpResult, &nOutBufLen) != NO_ERROR)
{
Mem_Free(lpResult);
lpResult = NULL;
}
return lpResult;
}
/**
* Renvoie les infos sur l'interface
*
* Après utilisation, il faut libérer les infos retournées avec Mem_Free.
* Renvoie NULL en cas d'erreur.
*/
IP_INTERFACE_INFO* __stdcall RetrieveInterfaceInfo()
{
DWORD nOutBufLen; /* Taille de la zone à allouer pour les infos */
PIP_INTERFACE_INFO lpResult;
/* Récupération de la taille à allouer et allocation */
nOutBufLen = 0;
GetAdaptersInfo(NULL, &nOutBufLen);
lpResult = (PIP_INTERFACE_INFO)Mem_Alloc(nOutBufLen);
/* Récupération des infos */
if (GetInterfaceInfo(lpResult, &nOutBufLen) != NO_ERROR)
{
Mem_Free(lpResult);
lpResult = NULL;
}
return lpResult;
}
/**
* Affiche la première adresse IP de l'adapter
*
* Attention, un adapter peut avoir plusieurs adresses.
*/
void __stdcall DisplayAdapterIp(IP_ADAPTER_INFO* lpAdaptersInfo)
{
TCHAR lpBuffer[64];
Str_AnsiToTChar(lpBuffer, 64, lpAdaptersInfo->IpAddressList.IpAddress.String);
/* lstrcat(lpBuffer, _T("\n")); */
Con_WriteLn(lpBuffer);
}
/**
* Main
*/
int __cdecl mainCRTStartup()
{
PIP_ADAPTER_INFO lpAdaptersInfo1; /* Infos les adapters avant changement */
PIP_ADAPTER_INFO lpAdaptersInfo2; /* Infos les adapters après changement */
PIP_INTERFACE_INFO lpInterfaceInfo; /* Infos sur l'interface */
DWORD nReturnValue; /* Vérification des appels */
int nResult;
nResult = 1;
/* Récupération des infos sur les adapters */
lpAdaptersInfo1 = RetrieveAdaptersInfo();
if (! lpAdaptersInfo1)
{
Con_WriteLn(_T("Echec de la récupération des infos sur les adapters"));
goto the_end;
}
/* Affichage de la première IP du premier adapter */
DisplayAdapterIp(lpAdaptersInfo1);
/* Récupération des infos sur l'interface */
lpInterfaceInfo = RetrieveInterfaceInfo();
if (! lpInterfaceInfo)
{
Con_WriteLn(_T("Echec de la récupération des infos sur l'interface"));
goto free_adapter_info1;
}
/* Renouvellement de l'IP */
nReturnValue = IpRenewAddress(&lpInterfaceInfo->Adapter[0]);
if (nReturnValue != NO_ERROR)
{
Con_WriteLn(_T("Erreur du renew"));
SetLastError(nReturnValue);
Sys_ShowLastError();
goto free_adapter_info2;
}
/* Récupération des infos sur les adapters */
lpAdaptersInfo2 = RetrieveAdaptersInfo();
if (! lpAdaptersInfo2)
{
Con_WriteLn(_T("Echec de la récupération des infos sur les adapters"));
goto free_interface_info;
}
/* Nouvel affichage de l'IP */
DisplayAdapterIp(lpAdaptersInfo2);
nResult = 0;
free_adapter_info2:
Mem_Free(lpAdaptersInfo2);
free_interface_info:
Mem_Free(lpInterfaceInfo);
free_adapter_info1:
Mem_Free(lpAdaptersInfo1);
the_end:
/* ExitProcess nécessaire car sinon c'est un ExitThread */
ExitProcess(nResult);
/* Pour esquiver le warning */
return 0;
}
|
|
Cette discussion est classée dans : clic, fenetre, manager, ip, adresse
Répondre à ce message
Sujets en rapport avec ce message
Récupérer une adresse IP. ( à partir de 2 cartes réseaux. ) [ par pcayrol ]
Ma config : un PC avec deux cartes réseaux. Chaque carte a son adresse IP.Avec la fonction gethostbyname je recupere un pointeur HOSTENT qui pointe su
adresse IP [ par IronLeader ]
comment je peux lire l'adresse ip du pc sur lequel l'executable est lance en c++un peu comme winipcfg en fait Merci d'avance
afficher l'adresse ip [ par laigle76 ]
Salut,je voudrai savoir comment faire pour afficher l'adresse ip du pc d'ou est lancé l'appli.J'utilise Vc++ 6.0 et dev c++Merci d'avance
help!!!! Saisir adresse ip en C [ par yeager ]
bonjourj'ai un petit problème pour saisir les informations sur mon adresse ip.J'ai un petit code tout simple qui devrait marcher....mais comme par has
Modifier mon adresse IP [ par sephiro ]
Je recherche les API pour modifier l'adresse IP de mon PC, je me déplace dans de nombreux sites ayant des plages IP différentes, j'aimerai donc par pr
Récupération d'adresse IP dans un programme [ par Jerems59 ]
BonjourJe souhaiterai récupérer mon adresse IP lorsque je me connecte sur internet (connexion 56k) Je voudrai utilisé ensuite cette adresse IP dans un
convertion d'ip [ par zebrahead ]
j'aimerai savoir comment convertir, une adresse ip de la base 10 a la base 2, parceque faire la convertion d'un chiffre "normal" ca passe mais je n'ar
URGENT !! verification adresse ip !!!! [ par ben01n ]
Salut à tousje suis débutant en c et je suis en train de programmer un serveur sous linuxvoila mon problème : mon prog prend une adresse ip comme argu
Masque de saisie sous C++ Buider 6 [ par ivdz ]
Bonjour,Comment générer le masque de saisie d'une adresse IP. J'ai créé un TMaskEdit *TMEpuis j'ai fait TME->EditMask="000.000.000.000"Cela marche pou
Adresse IP [ par lamotiniere ]
TimBonjour, j'aimerais savoir comment choper des adresses IP par courier électronic.Voila c'est tout, merci de me repondre vite...
Livres en rapport
|
Derniers Blogs
JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|