|
IPHLPAPI |
 |
Visual Basic
http://support.microsoft.com/?kbid=223025
API principali:
GetAdaptersInfo,GetNetworkParams (iphlpapi.dll)
Strutture principali: IP_ADAPTER_INFO, FIXED_INFO,
IP_ADDR_STRING
|
 |
Esempio di utilizzo di GetAdaptersInfo in
Visual C++
http://www.codeguru.com/Cpp/I-N/network/networkinformation/article.php/c5407/
|
 |
Determinare tutti gli indirizzi IP di tutti i
server DHCP in Visual Basic
Determining All IP Addresses for All DHCP Servers
API principali: GetAdaptersInfo
(iphlpapi.dll)
Strutture principali: IP_ADAPTER_INFO, IP_ADDR_STRING
|
 |
Verificare se DHCP è abilitato in Visual
Basic
Determining if DHCP is Enabled
API principali: GetAdaptersInfo
(iphlpapi.dll)
Strutture principali: IP_ADAPTER_INFO, IP_ADDR_STRING
|
 |
Indirizzo IP del server dhcp in Visual Basic
Determining the DHCP Server IP Address
API principali: GetAdaptersInfo
(iphlpapi.dll)
Strutture principali: IP_ADAPTER_INFO, IP_ADDR_STRING
|
 |
Determinare l' indirizzo IP di tutte le
interfacce di rete in Visual Basic
Determining All Local IP Addresses for All Installed Adapters
API principali: GetAdaptersInfo
(iphlpapi.dll)
Strutture principali: IP_ADAPTER_INFO, IP_ADDR_STRING
|
 |
Ottenere l' indirizzo IP di tutti i DNS
Server ed in particolare l' indirizzo IP del DNS Server corrente
in Visual Basic
Determining Current and Available DNS Servers
API principali: GetNetworkParams
(iphlpapi.dll)
Strutture principali: FIXED_INFO, IP_ADDR_STRING
|
 |
Esempio in Visual C++ di utilizzo di alcune
delle IPHLPAPI: informazioni sulle interfacce di rete, release e
renew di una interfaccia di rete (corrispondente ad
abilita/disabilita nel menù contestuale relativo all'
interfaccia di rete in "risorse di rete")
The
"New ipconfig" and the IP Helper API
API principali: GetAdaptersInfo,
GetPerAdapterInfo, IpReleaseAddress, IpRenewAddress
Strutture principali: IP_ADAPTER_INFO,
IP_ADDR_STRING
|
 |
Esempio notevole di utilizzo delle IPHLPAPI
(riferimenti a quasi tutte) in Visual C++
http://www.codeproject.com/internet/IPHelper.asp
API principali: GetIpNetTable,
GetIpAddrTable, GetIpForwardTable, GetIpStatistics,
GetBestInterface, GetBestRoute, NotifyRouteChange,
NotifyAddrChange, SendARP, GetUdpTable, GetIcmpStatistics,
GetInterfaceInfo, GetNetworkParams, GetPerAdapterInfo,
GetNumberOfInterfaces, GetRTTAndHopCount, GetTcpStatistics,
GetTcpTable, GetUdpStatistics
|
 |
Informazioni su nomehost (gethostname),
protocolli di rete installati (WSAEnumProtocols),
informazioni pricipali sulle interfacce di rete, etc... in
Visual C++
http://www.codeproject.com/internet/my_ip_-_v2.asp
|
 |
Statistiche TCP/IP/UDP, informazioni sulle
interfacce di rete, tabella ARP e tabella ROUTE in Visual C++
http://www.codeproject.com/internet/winnetstat.asp
API principali:
GetIfTable: caratteristiche fisiche du
tutte le interfacce di rete.
GetIfEntry: caratteristiche di una interfaccia di rete
specifica.
SetIfEntry: aggiorna lo stato operativo di una interfaccia di
rete: abilitata, disabilitata.
SetIpTTL: imposta il campo TTL per tutti i pacchetti IP inviati
dal tuo sistema.
GetIPAddrTable: informazioni sull'
indirizzo IP
GetIpNetTable: informazioni sulla tabella
ARP
SetIpNetEntry: aggiunge un elemento alla tabella ARP
DeleteIpNetEntry: elimina un elemento dalla tabella ARP
GetIpForwardTable: informazioni sulla
tabella di routing
SetIpForwardEntry: aggiunge un elemento alla tabella di routing
DeleteIpForwardEntry:elimina un elemento dalla tabella di
routing
GetRTTAndHopCount: determina l' RTT (round trip time) ed il
numero di punti di passaggio (hop count) verso la destinazione
specificata
GetIpStatistics: statistiche Ip
GetIcmpStatistics: statistiche Icmp
: statistiche Tcp
GetUdpStatistics: statistiche Udp
N.B le stesse funzioni con un Ex alla fine
del nome raccolgono le statistiche relativamente al protocollo
IPv6.
|
 |
Esempio di utilizzo delle IPHLPAPI: creazione di
un clone di netstat.exe (GetTcpTable, GetUdpTable) comprensivo di
statistiche IP ICMP TCP e UDP (GetIpStatistics,
GetIcmpStatistics, GetTcpStatistics, GetUdpStatistics) in Visual C++
http://www.codeproject.com/internet/tcpinfo.asp
|
 |
Clone di nestat in Visual C#: molto approfondito
http://www.codeproject.com/KB/IP/iphlpapi.aspx
API principali:
GetTcpTable, GetUdpTable: elenco delle
connessioni TCP e UDP;
GetTcpStatistics, GetUdpStatistics:
statistiche TCP e UDP
AllocateAndGetTcpExTableFromStack,
AllocateAndGetUdpExTableFromStack: punto forte dell' articolo;
queste 2 api win32 non documentate consentono di ottenere il Process
ID del processo che detiene la connessione UDP o TCP. |
 |
Clone di nestat.exe analogo a quello esposto
nel link appena sopra ma in Italiano
http://pmode.impazz.it/tuts/xp_nstat.htm
API principali:
GetTcpTable, GetUdpTable: elenco delle
connessioni TCP e UDP;
GetTcpStatistics, GetUdpStatistics:
statistiche TCP e UDP
AllocateAndGetTcpExTableFromStack,
AllocateAndGetUdpExTableFromStack: Process ID del processo che
detiene la connessione (TCP o UDP) |
 |
Un altro clone di netstat con la funzionalità di
ricavare il processo che detiene una connessione
http://www.codeproject.com/internet/enetstatasp.asp
API principali:
GetTcpTable, GetUdpTable: elenco delle
connessioni TCP e UDP;
GetTcpStatistics, GetUdpStatistics:
statistiche TCP e UDP
AllocateAndGetTcpExTableFromStack,
AllocateAndGetUdpExTableFromStack: Process ID del processo che
detiene la connessione (TCP o UDP) |
 |
Buona panoramica sulle IPHLPAPI: in C++
http://www.developer.com/ws/pc/article.php/10947_3406411_1
|
 |
Programmi in Delphi che usano le IPHLPAPI:
"Delphi TCP/IP Connection Logger": clone di
netstat.exe
"Delphi TCP/IP Connection Logger": elenca le
connessioni (come netstat.exe) ma contiene anche numerose
informazioni aggiuntive (tabella ARP, tabella di routing,
enumerazione interfacce di rete, statistiche IP ICMP TCP UDP,
informazioni sulle interfacce di rete, calcolo del Round Trip Time
(RTT) e dell' Hop Count, etc...
http://users.pandora.be/dirk.claessens2/software.htm
API utilizzate
GetAdaptersInfo, GetNetworkParams,
GetTcpTable, GetTcpStatistics, GetUdpTable, GetUdpStatistics,
GetIpStatistics, GetIpNetTable, GetIpAddrTable, GetIpForwardTable,
GetIcmpStatistics, GetRTTAndHopCount, GetIfTable, GetIfEntry,
GetFriendlyIfIndex
|
 |
Esempio di utilizzo delle IPHLPAPI (incentrato
suille statistiche) sfornato da Delphi About
http://delphi.about.com/library/weekly/aa112903a.htm
|
 |
Clone di IPCONFIG fatto dal sottoscritto
Programmazione Delphi- Enumerare le interfacce di rete con relative
caratteristiche
API
principali: GetAdaptersInfo,
GetPerAdapterInfo,
Strutture principaliIP_ADAPTER_INFO,
IP_ADDR_STRING, IP_PER_ADAPTER_INFO, MIB_IPADDRTABLE
|
 |
Ulteriore esempio di come elencare le connessioni
e ricavare anche il processo associato alla connessione: rispetto ai
2 esempi precedenti c' è anche la dritta su come determinare il
processo tramite l' API nativa NtQuerySystemInformation
http://www.planetsourcecode.com/URLSEO/vb/scripts/ShowCode!asp/txtCodeId!1455/lngWid!7/anyname.htm
|
 |
Dal famoso Delphi-Jedi: tra le conversioni dei
file .h nelle corrispondenti unit .pas, troviamo anche la unit .pas
di traduzione del file iphlpapi.h contenente le dichiarazioni di
tutte le IPHLPAPI e dei tipi ad esse relativi per l' utilizzo delle
IPHLPAPI da Delphi:
http://jedi-apilib.sourceforge.net/
|
 |
Rilevare le variazioni alla configurazione delle
interfacce di rete (altro umile contributo del sottoscritto).
Implementato come servizio, con in aggiunta la funzionalità di
comunicare via email il cambio di configurazione (ad esempio cambia
l' indirizzo IP assegnato al sistema da un server DHCP e si comunica
ad un indirizzo email il nuovo indirizzo IP)
http://pasotech.altervista.org/delphi/articolo28.htm
API
principali: NotifyAddrChange, GetIpAddrTable
|
 |
Packet Filtering con le IPHLPAPI in C++ e C#
su piattaforma .NET
http://www.codeproject.com/managedcpp/packetfilteringnet.asp
|
 |
Netstat avanzato con funzionalità di Packet
Filtering e Packet Sniffing; consente anche la chiusura di una
connessione tramite l' api SetTcpEntry; in Visual C++.
http://www.codeproject.com/internet/enetstatasp.asp
|
|
Unit Pascal di traduzione dell' header
fltdefs.h per l' utilizzo delle api di Packet Filtering in
Delphi (dal sottoscritto)
fltdefs.pas
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|