最近我载了一个关于SysInfo的程序,其中 有 #include <iphlpapi.h>,编译时总说
找不到文件 iphlpapi.h, 我把<>号该成""号也不行。不知哪位仁兄知道该头文件在什么
地方?感谢回复!

解决方案 »

  1.   

    [email protected]
    thz in advance
      

  2.   

    /*++Copyright (c) Microsoft Corporation. All rights reserved.Module Name:    iphlpapi.hAbstract:
        Header file for functions to interact with the IP Stack for MIB-II and
        related functionality--*/#ifndef __IPHLPAPI_H__
    #define __IPHLPAPI_H__#if _MSC_VER > 1000
    #pragma once
    #endif#ifdef __cplusplus
    extern "C" {
    #endif//////////////////////////////////////////////////////////////////////////////
    //                                                                          //
    // IPRTRMIB.H has the definitions of the strcutures used to set and get     //
    // information                                                              //
    //                                                                          //
    //////////////////////////////////////////////////////////////////////////////#include <iprtrmib.h>
    #include <ipexport.h>
    #include <iptypes.h>//////////////////////////////////////////////////////////////////////////////
    //                                                                          //
    // The GetXXXTable APIs take a buffer and a size of buffer.  If the buffer  //
    // is not large enough, the APIs return ERROR_INSUFFICIENT_BUFFER  and      //
    // *pdwSize is the required buffer size                                     //
    // The bOrder is a BOOLEAN, which if TRUE sorts the table according to      //
    // MIB-II (RFC XXXX)                                                        //
    //                                                                          //
    //////////////////////////////////////////////////////////////////////////////
    //////////////////////////////////////////////////////////////////////////////
    //                                                                          //
    // Retrieves the number of interfaces in the system. These include LAN and  //
    // WAN interfaces                                                           //
    //                                                                          //
    //////////////////////////////////////////////////////////////////////////////
    DWORD
    WINAPI
    GetNumberOfInterfaces(
        OUT PDWORD  pdwNumIf
        );//////////////////////////////////////////////////////////////////////////////
    //                                                                          //
    // Gets the MIB-II ifEntry                                                  //
    // The dwIndex field of the MIB_IFROW should be set to the index of the     //
    // interface being queried                                                  //
    //                                                                          //
    //////////////////////////////////////////////////////////////////////////////DWORD
    WINAPI
    GetIfEntry(
        IN OUT PMIB_IFROW   pIfRow
        );//////////////////////////////////////////////////////////////////////////////
    //                                                                          //
    // Gets the MIB-II IfTable                                                  //
    //                                                                          //
    //////////////////////////////////////////////////////////////////////////////DWORD
    WINAPI
    GetIfTable(
        OUT    PMIB_IFTABLE pIfTable,
        IN OUT PULONG       pdwSize,
        IN     BOOL         bOrder
        );//////////////////////////////////////////////////////////////////////////////
    //                                                                          //
    // Gets the Interface to IP Address mapping                                 //
    //                                                                          //
    //////////////////////////////////////////////////////////////////////////////DWORD
    WINAPI
    GetIpAddrTable(
        OUT    PMIB_IPADDRTABLE pIpAddrTable,
        IN OUT PULONG           pdwSize,
        IN     BOOL             bOrder
        );//////////////////////////////////////////////////////////////////////////////
    //                                                                          //
    // Gets the current IP Address to Physical Address (ARP) mapping            //
    //                                                                          //
    //////////////////////////////////////////////////////////////////////////////DWORD
    WINAPI
    GetIpNetTable(
        OUT    PMIB_IPNETTABLE pIpNetTable,
        IN OUT PULONG          pdwSize,
        IN     BOOL            bOrder
        );//////////////////////////////////////////////////////////////////////////////
    //                                                                          //
    // Gets the IP Routing Table  (RFX XXXX)                                    //
    //                                                                          //
    //////////////////////////////////////////////////////////////////////////////
      

  3.   

    DWORD
    WINAPI
    GetIpForwardTable(
        OUT    PMIB_IPFORWARDTABLE pIpForwardTable,
        IN OUT PULONG              pdwSize,
        IN     BOOL                bOrder
        );//////////////////////////////////////////////////////////////////////////////
    //                                                                          //
    // Gets TCP Connection/UDP Listener Table                                   //
    //                                                                          //
    //////////////////////////////////////////////////////////////////////////////DWORD
    WINAPI
    GetTcpTable(
        OUT    PMIB_TCPTABLE pTcpTable,
        IN OUT PDWORD        pdwSize,
        IN     BOOL          bOrder
        );DWORD
    WINAPI
    GetUdpTable(
        OUT    PMIB_UDPTABLE pUdpTable,
        IN OUT PDWORD        pdwSize,
        IN     BOOL          bOrder
        );
    //////////////////////////////////////////////////////////////////////////////
    //                                                                          //
    // Gets IP/ICMP/TCP/UDP Statistics                                          //
    //                                                                          //
    //////////////////////////////////////////////////////////////////////////////DWORD
    WINAPI
    GetIpStatistics(
        OUT  PMIB_IPSTATS   pStats
        );DWORD
    WINAPI
    GetIpStatisticsEx(
        OUT  PMIB_IPSTATS   pStats,
        IN   DWORD          dwFamily
        );DWORD
    WINAPI
    GetIcmpStatistics(
        OUT PMIB_ICMP   pStats
        );
    DWORD
    WINAPI
    GetTcpStatistics(
        OUT PMIB_TCPSTATS   pStats
        );DWORD
    WINAPI
    GetTcpStatisticsEx(
        OUT PMIB_TCPSTATS   pStats,
        IN  DWORD           dwFamily
        );DWORD
    WINAPI
    GetUdpStatistics(
        OUT PMIB_UDPSTATS   pStats
        );DWORD
    WINAPI
    GetUdpStatisticsEx(
        OUT PMIB_UDPSTATS   pStats,
        IN  DWORD           dwFamily
        );//////////////////////////////////////////////////////////////////////////////
    //                                                                          //
    // Used to set the ifAdminStatus on an interface.  The only fields of the   //
    // MIB_IFROW that are relevant are the dwIndex (index of the interface      //
    // whose status needs to be set) and the dwAdminStatus which can be either  //
    // MIB_IF_ADMIN_STATUS_UP or MIB_IF_ADMIN_STATUS_DOWN                       //
    //                                                                          //
    //////////////////////////////////////////////////////////////////////////////DWORD
    WINAPI
    SetIfEntry(
        IN PMIB_IFROW pIfRow
        );//////////////////////////////////////////////////////////////////////////////
    //                                                                          //
    // Used to create, modify or delete a route.  In all cases the              //
    // dwForwardIfIndex, dwForwardDest, dwForwardMask, dwForwardNextHop and     //
    // dwForwardPolicy MUST BE SPECIFIED. Currently dwForwardPolicy is unused   //
    // and MUST BE 0.                                                           //
    // For a set, the complete MIB_IPFORWARDROW structure must be specified     //
    //                                                                          //
    //////////////////////////////////////////////////////////////////////////////DWORD
    WINAPI
    CreateIpForwardEntry(
        IN PMIB_IPFORWARDROW pRoute
        );DWORD
    WINAPI
    SetIpForwardEntry(
        IN PMIB_IPFORWARDROW pRoute
        );DWORD
    WINAPI
    DeleteIpForwardEntry(
        IN PMIB_IPFORWARDROW pRoute
        );//////////////////////////////////////////////////////////////////////////////
    //                                                                          //
    // Used to set the ipForwarding to ON or OFF (currently only ON->OFF is     //
    // allowed) and to set the defaultTTL.  If only one of the fields needs to  //
    // be modified and the other needs to be the same as before the other field //
    // needs to be set to MIB_USE_CURRENT_TTL or MIB_USE_CURRENT_FORWARDING as  //
    // the case may be                                                          //
    //                                                                          //
    //////////////////////////////////////////////////////////////////////////////
    DWORD
    WINAPI
    SetIpStatistics(
        IN PMIB_IPSTATS pIpStats
        );//////////////////////////////////////////////////////////////////////////////
    //                                                                          //
    // Used to set the defaultTTL.                                              //
    //                                                                          //
    //////////////////////////////////////////////////////////////////////////////DWORD
    WINAPI
    SetIpTTL(
        UINT nTTL
        );//////////////////////////////////////////////////////////////////////////////
    //                                                                          //
    // Used to create, modify or delete an ARP entry.  In all cases the dwIndex //
    // dwAddr field MUST BE SPECIFIED.                                          //
    // For a set, the complete MIB_IPNETROW structure must be specified         //
    //                                                                          //
    //////////////////////////////////////////////////////////////////////////////
      

  4.   

    DWORD
    WINAPI
    CreateIpNetEntry(
        IN PMIB_IPNETROW    pArpEntry
        );DWORD
    WINAPI
    SetIpNetEntry(
        IN PMIB_IPNETROW    pArpEntry
        );DWORD
    WINAPI
    DeleteIpNetEntry(
        IN PMIB_IPNETROW    pArpEntry
        );DWORD
    WINAPI
    FlushIpNetTable(
        IN DWORD   dwIfIndex
        );
    //////////////////////////////////////////////////////////////////////////////
    //                                                                          //
    // Used to create or delete a Proxy ARP entry. The dwIndex is the index of  //
    // the interface on which to PARP for the dwAddress.  If the interface is   //
    // of a type that doesnt support ARP, e.g. PPP, then the call will fail     //
    //                                                                          //
    //////////////////////////////////////////////////////////////////////////////DWORD
    WINAPI
    CreateProxyArpEntry(
        IN  DWORD   dwAddress,
        IN  DWORD   dwMask,
        IN  DWORD   dwIfIndex
        );DWORD
    WINAPI
    DeleteProxyArpEntry(
        IN  DWORD   dwAddress,
        IN  DWORD   dwMask,
        IN  DWORD   dwIfIndex
        );//////////////////////////////////////////////////////////////////////////////
    //                                                                          //
    // Used to set the state of a TCP Connection. The only state that it can be //
    // set to is MIB_TCP_STATE_DELETE_TCB.  The complete MIB_TCPROW structure   //
    // MUST BE SPECIFIED                                                        //
    //                                                                          //
    //////////////////////////////////////////////////////////////////////////////DWORD
    WINAPI
    SetTcpEntry(
        IN PMIB_TCPROW pTcpRow
        );
    DWORD
    WINAPI
    GetInterfaceInfo(
        IN PIP_INTERFACE_INFO pIfTable,
        OUT PULONG            dwOutBufLen
        );DWORD
    WINAPI
    GetUniDirectionalAdapterInfo(OUT PIP_UNIDIRECTIONAL_ADAPTER_ADDRESS pIPIfInfo,
                     OUT PULONG dwOutBufLen
                     );//////////////////////////////////////////////////////////////////////////////
    //                                                                          //
    // Gets the "best" outgoing interface for the specified destination address //
    //                                                                          //
    //////////////////////////////////////////////////////////////////////////////DWORD
    WINAPI
    GetBestInterface(
        IN  IPAddr  dwDestAddr,
        OUT PDWORD  pdwBestIfIndex
        );//////////////////////////////////////////////////////////////////////////////
    //                                                                          //
    // Gets the best (longest matching prefix) route for the given destination  //
    // If the source address is also specified (i.e. is not 0x00000000), and    //
    // there are multiple "best" routes to the given destination, the returned  //
    // route will be one that goes out over the interface which has an address  //
    // that matches the source address                                          //
    //                                                                          //
    //////////////////////////////////////////////////////////////////////////////DWORD
    WINAPI
    GetBestRoute(
        IN  DWORD               dwDestAddr,
        IN  DWORD               dwSourceAddr, OPTIONAL
        OUT PMIB_IPFORWARDROW   pBestRoute
        );DWORD
    WINAPI
    NotifyAddrChange(
        OUT PHANDLE      Handle,
        IN  LPOVERLAPPED overlapped
        );
    DWORD
    WINAPI
    NotifyRouteChange(
        OUT PHANDLE      Handle,
        IN  LPOVERLAPPED overlapped
        );
    DWORD
    WINAPI
    GetAdapterIndex(
        IN LPWSTR  AdapterName,
        OUT PULONG IfIndex
        );DWORD
    WINAPI
    AddIPAddress(
        IPAddr  Address,
        IPMask  IpMask,
        DWORD   IfIndex,
        PULONG  NTEContext,
        PULONG  NTEInstance
        );DWORD
    WINAPI
    DeleteIPAddress(
        ULONG NTEContext
        );DWORD
    WINAPI
    GetNetworkParams(
        PFIXED_INFO pFixedInfo, PULONG pOutBufLen
        );DWORD
    WINAPI
    GetAdaptersInfo(
        PIP_ADAPTER_INFO pAdapterInfo, PULONG pOutBufLen
        );#ifdef _WINSOCK2API_//
    // The following functions require Winsock2.
    //DWORD
    WINAPI
    GetAdaptersAddresses(
        ULONG Family,
        DWORD Flags,
        PVOID Reserved,
        PIP_ADAPTER_ADDRESSES pAdapterAddresses, 
        PULONG pOutBufLen
        );#endifDWORD
    WINAPI
    GetPerAdapterInfo(
        ULONG IfIndex, PIP_PER_ADAPTER_INFO pPerAdapterInfo, PULONG pOutBufLen
        );DWORD
    WINAPI
    IpReleaseAddress(
        PIP_ADAPTER_INDEX_MAP  AdapterInfo
        );
    DWORD
    WINAPI
    IpRenewAddress(
        PIP_ADAPTER_INDEX_MAP  AdapterInfo
        );DWORD
    WINAPI
    SendARP(
        IPAddr DestIP,
        IPAddr SrcIP,
        PULONG pMacAddr,
        PULONG  PhyAddrLen
        );BOOL
    WINAPI
    GetRTTAndHopCount(
        IPAddr DestIpAddress,
        PULONG HopCount,
        ULONG  MaxHops,
        PULONG RTT
        );DWORD
    WINAPI
    GetFriendlyIfIndex(
        DWORD IfIndex
        );DWORD
    WINAPI
    EnableRouter(
        HANDLE* pHandle,
        OVERLAPPED* pOverlapped
        );DWORD
    WINAPI
    UnenableRouter(
        OVERLAPPED* pOverlapped,
        LPDWORD lpdwEnableCount OPTIONAL
        );
    DWORD
    WINAPI
    DisableMediaSense(
        HANDLE *pHandle,
        OVERLAPPED *pOverLapped
        );DWORD
    WINAPI
    RestoreMediaSense(
        OVERLAPPED* pOverlapped,
        LPDWORD lpdwEnableCount OPTIONAL
        );DWORD
    WINAPI
    GetIpErrorString(
        IN IP_STATUS ErrorCode,
        OUT PWCHAR Buffer,
        IN OUT PDWORD Size
        );#ifdef __cplusplus
    }
    #endif#endif //__IPHLPAPI_H__
      

  5.   

    真辛苦你了,不过现在却找不到头文件
    #include <ipexport.h>
    #include <iptypes.h>
    了,真没办法,我是在
    http://www.codeguru.com/system/SysInfo.html
    下载的一个检查系统信息的程序,现在就是编译不过去
    帮忙就帮到底吧!
    万分感谢!