10
votes

Trouver des ports TCP utilisés par application

Très bien, alors je prolonge que le démon du vendeur FlexLM de mon entreprise soit un peu plus révélateur aux applications clientes.

Je dois être capable de savoir quel port LMGRD écoute avant que les clients ne se connectent. La documentation de l'API semble être plutôt stérile, et je pense qu'ils tiennent la majeure partie de leur code dans une forme compilée, donc je ne peux pas simplement regarder leur source.

est-il possible d'appeler sur la puissance impressionnante de l'API Windows pour savoir quels ports un processus particulier utilise? Si l'explorateur de processus de Sysinternals peut le faire, je devrais être capable de, non? Quel serait un exemple de code pour cela?

Il doit prendre en charge Windows XP et plus élevé puisque bon nombre de nos clients n'ont pas encore mis à niveau.

Je dois noter qu'il s'avère que Flex a la prise en charge du port du fichier de licence. Je n'ai pas le code devant moi, mais sachez que ce n'est pas la meilleure façon de savoir quels ports votre fournisseur Daemon / Lmgrd est en cours d'exécution.


0 commentaires

3 Réponses :


3
votes

Dans le pire des cas, vous pouvez toujours analyser la sortie de: xxx


1 commentaires

Idée intéressante. Plus pour trouver une version inverse engagée de cette application. Je suis tombé sur l'ancien code source Winternals et je verra comment cet homme a mis en œuvre son application TCPView.



8
votes

getttcptable2 - voir ci-dessous

GETTCPTTABLE2 Fonction em> p>

La fonction getTenctable récupère la table de connexion IPv4 TCP. P>

Ceci remplira une structure MIB_TCPTable. P> xxx pré>

et maintenant le MIB_TCPROW P>

typedef struct _MIB_TCPROW2 {
  DWORD                        dwState;
  DWORD                        dwLocalAddr;
  DWORD                        dwLocalPort;
  DWORD                        dwRemoteAddr;
  DWORD                        dwRemotePort;
  DWORD                        dwOwningPid;
  TCP_CONNECTION_OFFLOAD_STATE dwOffloadState;
} MIB_TCPROW2, *PMIB_TCPROW2;


6 commentaires

Merde. Ne peut faire. Semble que la fonction GetTCPTABLE2 est une VISTA et une fonction supérieure. J'aurais dû spécifier qu'il devrait fonctionner avec Windows XP au minimum car nombre de nos clients n'ont pas encore amélioré. Je vais mettre à jour mon message d'origine. Excellent retrouver cependant, je dois dire.


Donc ... il semble que la version la plus proche de Windows XP de ceci est AllociCaeandgetTcpextableFromstack msdn.microsoft.com/en-us/library/aa365804 (v = vs.85) .aspx


Les fonctions GetTCPPTABLE OU GETEXTENDCPTABLES doivent être utilisées pour récupérer la table de connexion TCP au lieu d'utiliser la fonction AllocateAnDgetTtCPextableFromstackTable. Remarque La fonction AllociCaeAndgetTtCextablessFromstackstackstackstackstackstackstact est obsolète et non prise en charge sur Windows Vista et plus tard. Sur le kit de développement logiciel Microsoft Windows (SDK) publié pour Windows Vista et ultérieurement, le prototype de fonction pour allOCATEANDGETTCPEXTABLETFROMSTACK est toujours défini dans le fichier d'en-tête iPhlpapi.h pour la prise en charge continue sur Windows Server 2003 et Windows XP.


UTILISATION: GETEXTENDECTABLE ET GETHERMODULEFROMTCENTIRY


Je viens de trouver le getextensettcable. Impressionnant!


Qu'est-ce que c'est apparemment suspendu " Dwowingpid " à la fin (l'un des champs _mib_tcprow2 )?



6
votes

Voici le code que j'ai retrouvé, pour quiconque frappe ce problème après moi xxx


0 commentaires