// // PROTSTR.CPP - PROTOtoSTR() // 与えられたプロトコルタイプの文字列(const)を返す // #include // Protocol specific annexes #include #include #include // #include -- Not provided // RSVP protocols according to WSANX203.DOC #define IPPROTO_RSVP 0x2e // #include -- Not provided // ISO protocols according to WSANX203.DOC #define ISOPROTO_TP_CONS 25 #define ISOPROTO_TP4_CLNS 29 #define ISOPROTO_CLTP_CLNS 30 #define ISOPROTO_X25 32 //////////////////////////////////////////////////////////// typedef struct tagPROTOCOLTYPES { int iProtocolType; char *szDescription; }PROTOCOLTYPES; //////////////////////////////////////////////////////////// PROTOCOLTYPES ProtocolTypes[] = { // WINSOCK2.H IPPROTO_IP, "IPPROTO_IP", IPPROTO_ICMP, "IPPROTO_ICMP", IPPROTO_IGMP, "IPPROTO_IGMP", IPPROTO_GGP, "IPPROTO_GGP", IPPROTO_TCP, "IPPROTO_TCP", IPPROTO_PUP, "IPPROTO_PUP", IPPROTO_UDP, "IPPROTO_UDP", IPPROTO_IDP, "IPPROTO_IDP", IPPROTO_ND, "IPPROTO_ND", IPPROTO_RAW, "IPPROTO_RAW", // Novell - WSIPX.H NSPROTO_IPX, "NSPROTO_IPX", NSPROTO_SPX, "NSPROTO_SPX", NSPROTO_SPXII, "NSPROTO_SPXII", //DecNet - WS2DNET.H DNPROTO_NSP, "DNPROTO_NSP", // = IPPROTO_ICMP DNPROTO_RAW, "DNPROTO_RAW", // = IPPROTO_RAW // OSI - WS2OSI.H ISOPROTO_TP_CONS, "ISOPROTO_TP_CONS", ISOPROTO_TP4_CLNS, "ISOPROTO_TP4_CLNS", ISOPROTO_CLTP_CLNS, "ISOPROTO_CLTP_CLNS", ISOPROTO_X25, "ISOPROTO_X25", // ATM - WS2ATM.H ATMPROTO_AAL1, "ATMPROTO_AAL1", // = IPPROTO_ICMP ATMPROTO_AAL2, "ATMPROTO_AAL2", // = IPPROTO_IGMP ATMPROTO_AAL34, "ATMPROTO_AAL34", // = IPPROTO_GGP ATMPROTO_AAL5, "ATMPROTO_AAL5", // RSVP - WS2RSVP.H IPPROTO_RSVP, "IPPROTO_RSVP" }; //////////////////////////////////////////////////////////// // // PROTOtoSTR() // LPCTSTR PROTOtoSTR(int iProtocol) { #define NUMELEMENTS sizeof(ProtocolTypes) / \ sizeof(ProtocolTypes[0]) int nNdx; for (nNdx = 0; nNdx < NUMELEMENTS; nNdx++) { if (ProtocolTypes[nNdx].iProtocolType == iProtocol) return(ProtocolTypes[nNdx].szDescription); } return("Unknown Protocol Type"); }