COlive
Messages postés91Date d'inscriptionmercredi 27 février 2002StatutMembreDernière intervention 3 décembre 2011
-
28 janv. 2005 à 12:23
elguevel
Messages postés718Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention22 novembre 2016
-
3 mars 2008 à 19:29
Bonjour,
je galère pour retrouver l'adresse mac d'une carte réseau d'un poste distant à partir de son nom ou bien de son adresse ip (Je sais trouver l'ip depuis le nom).
Ma fonctions en vb6 tourne tres bien (appel de sendarp via api.) Mais en Net je ne trouve pas la solution sachant que via WMI cela ne m'interresse pas puisque si le poste est équipé de xp sp2 ben sa marche plus ! (le firewall bloque l'acces wmi).
COlive.
Deux intellectuels assis iront moins loin qu'un con qui marche. Pensez-y !
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200620 8 févr. 2005 à 19:00
Tu as raison ! VB.NET ne supporte pas les string de longueur fixe (string * x).
Il serait conseillé de remplacer un
Dim s as string * 10
par
dim s as string
s=string$(10," ")
D'autre part, dans les fonctions (api ou autres), il ne faut plus utiliser les "as Any" et les remplacer par as String ou as Long, suivant le type attendu. De même, le as optional devient as optional = 0.
J'ai trouvé une adresse qui énumère un certain nombre de différences en vb6 et vb.net, ça peut t'être utile :
COlive
Messages postés91Date d'inscriptionmercredi 27 février 2002StatutMembreDernière intervention 3 décembre 2011 7 févr. 2005 à 11:05
Je connais bien la dll puisque je l'utilise sous vb6, mais mon problème est que justement sous vb.net elle ne me retourne que des 00
Je ne dois pas l'appeler comme il faut et la source du lien ci dessus n'est pas du vb.net et je n'arrive pas à la convertir en vb.net avec succés (afin de faire fonctionner correctement cette dll)
COlive.
Deux intellectuels assis iront moins loin qu'un con qui marche. Pensez-y !
COlive
Messages postés91Date d'inscriptionmercredi 27 février 2002StatutMembreDernière intervention 3 décembre 2011 7 févr. 2005 à 18:52
ben en fait j'ai pas vraiment de soucis pour utiliser les APIs (voir mes codes), j'ai des soucis pour utiliser cette dll là en particulier et aussi celle de wininet.dll.
Les autres, elles fonctionnent très bien (voir mes sources)
COlive.
Deux intellectuels assis iront moins loin qu'un con qui marche. Pensez-y !
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200620 7 févr. 2005 à 19:47
Alors là, je sèche.
Comme j'ai dit, je débute en VB.NET et les essais que j'ai fait avec des api ont fonctionné jusqu'à maintenant. Pour wininet.dll, je n'ai pas encore vu. J'essaierai ça demain.
Au fait, je dis peut être une c....... mais ca ne pourrait pas être un prob d'inscription en registry ?
COlive
Messages postés91Date d'inscriptionmercredi 27 février 2002StatutMembreDernière intervention 3 décembre 2011 8 févr. 2005 à 09:12
Et bien en fait j'avais déjà trouvé cette source qui correspond à 99% à celle que j'ai en vb6.
Et en .net cela ne tourne pas.
Je pense que mon problème ne vient pas dans la déclaration des apis / dll mais plutot dans celle de la déclaration des variables string en mode buffer (je sais pas si je suis clair).
En fait en vb6 il est facile de déclarer une string et de lui donner une longueur précise :
sOrgPath = String(MAX_PATH, 0)
sOrgPath aura alors la longueur MAX_PATH et sera rempli de 0.
Et j'avoue que j'ai pas trouvé comment faire ça en .net.
COlive.
Deux intellectuels assis iront moins loin qu'un con qui marche. Pensez-y !
COlive
Messages postés91Date d'inscriptionmercredi 27 février 2002StatutMembreDernière intervention 3 décembre 2011 18 févr. 2005 à 09:58
J'ai pas trouvé de solution mais une petite parade pour pouvoir faire fonctionner ma source.
En fait j'ai créer une dll sous vb6 que j'utilise sous vb.net puisque l'api contenant sendarp ne veut pas tourner.
Voir ma source WinAdmin catégorie vb.net pour une amélioration future entierement .net.
Merci de votre aide quand même, vos liens mon apporter de nombreuses informations.
COlive.
Deux intellectuels assis iront moins loin qu'un con qui marche. Pensez-y !
Pensez à cliquer sur réponse acceptées quand votre problème est solutionné.
elguevel
Messages postés718Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention22 novembre 20163 3 mars 2008 à 19:29
J'arive un peu tard, mais çà pourra servir à d'autre ...
Imports System.Net
Imports System.Net.Sockets
Declare Function SendARP Lib "iphlpapi.dll" (ByVal DestIP As Integer, ByVal SrcIP As Integer, ByVal pMacAddr As Byte(), ByRef PhyAddrLen As Integer) As Integer
Private Function SendArp(ByVal IP As String) As String
Dim addr As IPAddress = IPAddress.Parse(IP)
Dim mac() As Byte = {0, 0, 0, 0, 0, 0}
Dim len As Integer = mac.Length
Dim ipadd As Integer = CType(addr.Address, Integer)
SendArp(ipadd, 0, mac, len)
Dim macAddress As String = BitConverter.ToString(mac, 0, len)