📄 smbrelay.cpp
字号:
printf("Error %u listening on socket\n", d );
closesocket(tcpsock);
return 0;
}
signal(SIGBREAK, SignalHandler);
signal(SIGINT, SignalHandler);
signal(SIGABRT, SignalHandler);
signal(SIGFPE, SignalHandler);
signal(SIGILL, SignalHandler);
signal(SIGSEGV, SignalHandler);
signal(SIGTERM, SignalHandler);
DWORD l = 1;
ioctlsocket(tcpsock, FIONBIO , &l);
do
{
NEWCONINFO newconinfo;
int socklen = sizeof(sockaddr);
do
{
if ((inconsock = accept(tcpsock, (LPSOCKADDR)&sockaddr, &socklen)) == INVALID_SOCKET)
{
DWORD err = WSAGetLastError();
if (err != WSAEWOULDBLOCK)
{
printf("Error %d receiving incoming NetBIOS connection\n", err);
g_bQuit = FALSE;
}
else
{
Sleep(5);
}
}
} while (!g_bQuit && inconsock == INVALID_SOCKET );
if (!g_bQuit )
{
BOOL bDup = FALSE;
DWORD d;
for (d = 0; d < ConnectedSize && !bDup; d++)
{
if (ConnectedList[d] == sockaddr.sin_addr.s_addr)
bDup = TRUE;
}
if (bDup)
{
printf("Connection rejected: %s already connected\n", inet_ntoa(sockaddr.sin_addr));
closesocket(inconsock);
}
else
{
printf("Connection from %s:%d\n", inet_ntoa(sockaddr.sin_addr), ntohs(sockaddr.sin_port));
ConnectedList[ConnectedSize] = sockaddr.sin_addr.s_addr;
newconinfo.hostcount = ConnectedSize++;
newconinfo.connectionsock = inconsock;
memcpy(&newconinfo.sourcesockaddr, &sockaddr, sizeof(SOCKADDR_IN));
_beginthread(mainconnectionhandler, 0, &newconinfo);
Sleep(50);
}
}
} while (!g_bQuit );
closesocket(tcpsock);
if (g_bAddLocalIP)
{
DeleteIPAddress(NTEContext);
printf("Deleted incoming IP address\n");
}
Sleep(400);
WSACleanup();
printf("Exiting main\n");
return 0;
}
const char *GetInterfaceType(DWORD Type)
{
static char retbuff[32];
const char *ret = retbuff;
switch (Type)
{
default:
sprintf(retbuff, "Unknown: %d", Type);
break;
case IF_TYPE_OTHER:
ret = "OTHER";
break;
case IF_TYPE_REGULAR_1822:
ret = "REGULAR 1822";
break;
case IF_TYPE_HDH_1822:
ret = "HDH 1822";
break;
case IF_TYPE_DDN_X25:
ret = "DDN X25";
break;
case IF_TYPE_RFC877_X25:
ret = "RFC877 X25";
break;
case IF_TYPE_ETHERNET_CSMACD:
ret = "ETHERNET CSMACD";
break;
case IF_TYPE_IS088023_CSMACD:
ret = "IS088023 CSMACD";
break;
case IF_TYPE_ISO88024_TOKENBUS:
ret = "ISO88024 TOKENBUS";
break;
case IF_TYPE_ISO88025_TOKENRING:
ret = "ISO88025_TOKENRING";
break;
case IF_TYPE_ISO88026_MAN:
ret = "ISO88026_MAN";
break;
case IF_TYPE_STARLAN:
ret = "STARLAN";
break;
case IF_TYPE_PROTEON_10MBIT:
ret = "PROTEON_10MBIT";
break;
case IF_TYPE_PROTEON_80MBIT:
ret = "PROTEON_80MBIT";
break;
case IF_TYPE_HYPERCHANNEL:
ret = "HYPERCHANNEL";
break;
case IF_TYPE_FDDI:
ret = "FDDI";
break;
case IF_TYPE_LAP_B:
ret = "LAP_B";
break;
case IF_TYPE_SDLC:
ret = "SDLC";
break;
case IF_TYPE_DS1:
ret = "DS1";
break;
case IF_TYPE_E1:
ret = "E1";
break;
case IF_TYPE_BASIC_ISDN:
ret = "BASIC_ISDN";
break;
case IF_TYPE_PRIMARY_ISDN:
ret = "PRIMARY_ISDN";
break;
case IF_TYPE_PROP_POINT2POINT_SERIAL:
ret = "PROP POINT2POINT SERIAL";
break;
case IF_TYPE_PPP:
ret = "PPP";
break;
case IF_TYPE_SOFTWARE_LOOPBACK:
ret = "SOFTWARE LOOPBACK";
break;
case IF_TYPE_EON:
ret = "EON - CLNP over IP";
break;
case IF_TYPE_ETHERNET_3MBIT:
ret = "ETHERNET 3MBIT";
break;
case IF_TYPE_NSIP:
ret = "NSIP - XNS over IP";
break;
case IF_TYPE_SLIP:
ret = "SLIP";
break;
case IF_TYPE_ULTRA:
ret = "ULTRA";
break;
case IF_TYPE_DS3:
ret = "DS3-MIB";
break;
case IF_TYPE_SIP:
ret = "SIP - SMDS, coffee";
break;
case IF_TYPE_FRAMERELAY:
ret = "FRAMERELAY";
break;
case IF_TYPE_RS232:
ret = "RS232";
break;
case IF_TYPE_PARA:
ret = "Parallel port";
break;
case IF_TYPE_ARCNET:
ret = "ARCNET";
break;
case IF_TYPE_ARCNET_PLUS:
ret = "ARCNET_PLUS";
break;
case IF_TYPE_ATM:
ret = "ATM";
break;
case IF_TYPE_MIO_X25:
ret = "MIO_X25";
break;
case IF_TYPE_SONET:
ret = "SONET or SDH";
break;
case IF_TYPE_X25_PLE:
ret = "X25_PLE";
break;
case IF_TYPE_ISO88022_LLC:
ret = "ISO88022_LLC";
break;
case IF_TYPE_LOCALTALK:
ret = "LOCALTALK";
break;
case IF_TYPE_SMDS_DXI:
ret = "SMDS_DXI";
break;
case IF_TYPE_FRAMERELAY_SERVICE:
ret = "FRAMERELAY_SERVICE";
break;
case IF_TYPE_V35:
ret = "V35";
break;
case IF_TYPE_HSSI:
ret = "HSSI";
break;
case IF_TYPE_HIPPI:
ret = "HIPPI";
break;
case IF_TYPE_MODEM:
ret = "MODEM";
break;
case IF_TYPE_AAL5:
ret = "AAL5 over ATM";
break;
case IF_TYPE_SONET_PATH:
ret = "SONET_PATH";
break;
case IF_TYPE_SONET_VT:
ret = "SONET_VT";
break;
case IF_TYPE_SMDS_ICIP:
ret = "SMDS InterCarrier Interface";
break;
case IF_TYPE_PROP_VIRTUAL:
ret = "Proprietary virtual/internal";
break;
case IF_TYPE_PROP_MULTIPLEXOR:
ret = "Proprietary multiplexing";
break;
case IF_TYPE_IEEE80212:
ret = "IEEE80212 - 100BaseVG";
break;
case IF_TYPE_FIBRECHANNEL:
ret = "FIBRECHANNEL";
break;
case IF_TYPE_HIPPIINTERFACE:
ret = "HIPPIINTERFACE";
break;
case IF_TYPE_AFLANE_8023:
ret = "ATM Emulated LAN for 802.3";
break;
case IF_TYPE_AFLANE_8025:
ret = "ATM Emulated LAN for 802.5";
break;
case IF_TYPE_CCTEMUL:
ret = "CCTEMUL - ATM Emulated circuit";
break;
case IF_TYPE_FASTETHER:
ret = "Fast Ethernet (100BaseT)";
break;
case IF_TYPE_ISDN:
ret = "ISDN and X.25";
break;
case IF_TYPE_V11:
ret = "CCITT V.11/X.21";
break;
case IF_TYPE_V36:
ret = "CCITT V.36";
break;
case IF_TYPE_G703_64K:
ret = "CCITT G703 at 64Kbps";
break;
case IF_TYPE_G703_2MB:
ret = "G703_2MB";
break;
case IF_TYPE_QLLC:
ret = "SNA QLLC";
break;
case IF_TYPE_FASTETHER_FX:
ret = "Fast Ethernet (100BaseFX)";
break;
case IF_TYPE_CHANNEL:
ret = "CHANNEL";
break;
case IF_TYPE_IEEE80211:
ret = "IEEE80211 - Radio spread spectrum";
break;
case IF_TYPE_IBM370PARCHAN:
ret = "IBM370PARCHAN - IBM System 360/370 OEMI Channel";
break;
case IF_TYPE_ESCON:
ret = "IBM Enterprise Systems Connection";
break;
case IF_TYPE_DLSW:
ret = "Data Link Switching";
break;
case IF_TYPE_ISDN_S:
ret = "ISDN S/T interface";
break;
case IF_TYPE_ISDN_U:
ret = "ISDN U interface";
break;
case IF_TYPE_LAP_D:
ret = "Link Access Protocol D";
break;
case IF_TYPE_IPSWITCH:
ret = "IP Switching Objects";
break;
case IF_TYPE_RSRB:
ret = "Remote Source Route Bridging";
break;
case IF_TYPE_ATM_LOGICAL:
ret = "ATM Logical Port";
break;
case IF_TYPE_DS0:
ret = "Digital Signal Level 0";
break;
case IF_TYPE_DS0_BUNDLE:
ret = "Group of ds0s on the same ds1";
break;
case IF_TYPE_BSC:
ret = "Bisynchronous Protocol";
break;
case IF_TYPE_ASYNC:
ret = "Asynchronous Protocol";
break;
case IF_TYPE_CNR:
ret = "Combat Net Radio";
break;
case IF_TYPE_ISO88025R_DTR:
ret = "ISO 802.5r DTR";
break;
case IF_TYPE_EPLRS:
ret = "Ext Pos Loc Report Sys";
break;
case IF_TYPE_ARAP:
ret = "Appletalk Remote Access Protocol";
break;
case IF_TYPE_PROP_CNLS:
ret = "Proprietary Connectionless Proto";
break;
case IF_TYPE_HOSTPAD:
ret = "CCITT-ITU X.29 PAD Protocol";
break;
case IF_TYPE_TERMPAD:
ret = "CCITT-ITU X.3 PAD Facility";
break;
case IF_TYPE_FRAMERELAY_MPI:
ret = "Multiproto Interconnect over FR";
break;
case IF_TYPE_X213:
ret = "CCITT-ITU X213";
break;
case IF_TYPE_ADSL:
ret = "Asymmetric Digital Subscrbr Loop";
break;
case IF_TYPE_RADSL:
ret = "Rate-Adapt Digital Subscrbr Loop";
break;
case IF_TYPE_SDSL:
ret = "Symmetric Digital Subscriber Loop";
break;
case IF_TYPE_VDSL:
ret = "Very H-Speed Digital Subscrb Loop";
break;
case IF_TYPE_ISO88025_CRFPRINT:
ret = "ISO 802.5 CRFP";
break;
case IF_TYPE_MYRINET:
ret = "Myricom Myrinet";
break;
case IF_TYPE_VOICE_EM:
ret = "Voice recEive and transMit";
break;
case IF_TYPE_VOICE_FXO:
ret = "Voice Foreign Exchange Office";
break;
case IF_TYPE_VOICE_FXS:
ret = "Voice Foreign Exchange Station";
break;
case IF_TYPE_VOICE_ENCAP:
ret = "Voice encapsulation";
break;
case IF_TYPE_VOICE_OVERIP:
ret = "Voice over IP encapsulation";
break;
case IF_TYPE_ATM_DXI:
ret = "ATM DXI";
break;
case IF_TYPE_ATM_FUNI:
ret = "ATM FUNI";
break;
case IF_TYPE_ATM_IMA:
ret = "ATM IMA";
break;
case IF_TYPE_PPPMULTILINKBUNDLE:
ret = "PPP Multilink Bundle";
break;
case IF_TYPE_IPOVER_CDLC:
ret = "IBM ipOverCdlc";
break;
case IF_TYPE_IPOVER_CLAW:
ret = "IBM Common Link Access to Workstn";
break;
case IF_TYPE_STACKTOSTACK:
ret = "IBM stackToStack";
break;
case IF_TYPE_VIRTUALIPADDRESS:
ret = "IBM VIPA";
break;
case IF_TYPE_MPC:
ret = "IBM multi-proto channel support";
break;
case IF_TYPE_IPOVER_ATM:
ret = "IBM ipOverAtm";
break;
case IF_TYPE_ISO88025_FIBER:
ret = "ISO 802.5j Fiber Token Ring";
break;
case IF_TYPE_TDLC:
ret = "IBM twinaxial data link control";
break;
case IF_TYPE_GIGABITETHERNET:
ret = "GIGABITETHERNET";
break;
case IF_TYPE_HDLC:
ret = "HDLC";
break;
case IF_TYPE_LAP_F:
ret = "LAP_F";
break;
case IF_TYPE_V37:
ret = "V37";
break;
case IF_TYPE_X25_MLP:
ret = "X.25 Multi-Link Protocol";
break;
case IF_TYPE_X25_HUNTGROUP:
ret = "X.25 Hunt Group";
break;
case IF_TYPE_TRANSPHDLC:
ret = "TRANSPHDLC";
break;
case IF_TYPE_INTERLEAVE:
ret = "Interleave channel";
break;
case IF_TYPE_FAST:
ret = "Fast channel";
break;
case IF_TYPE_IP:
ret = "IP (for APPN HPR in IP networks)";
break;
case IF_TYPE_DOCSCABLE_MACLAYER:
ret = "CATV Mac Layer";
break;
case IF_TYPE_DOCSCABLE_DOWNSTREAM:
ret = "CATV Downstream interface";
break;
case IF_TYPE_DOCSCABLE_UPSTREAM:
ret = "CATV Upstream interface";
break;
case IF_TYPE_A12MPPSWITCH:
ret = "Avalon Parallel Processor";
break;
case IF_TYPE_TUNNEL:
ret = "Encapsulation interface";
break;
case IF_TYPE_COFFEE:
ret = "Coffee pot";
break;
case IF_TYPE_CES:
ret = "Circuit Emulation Service";
break;
case IF_TYPE_ATM_SUBINTERFACE:
ret = "ATM Sub Interface";
break;
case IF_TYPE_L2_VLAN:
ret = "Layer 2 Virtual LAN using 802.1Q";
break;
case IF_TYPE_L3_IPVLAN:
ret = "Layer 3 Virtual LAN using IP";
break;
case IF_TYPE_L3_IPXVLAN:
ret = "Layer 3 Virtual LAN using IPX";
break;
case IF_TYPE_DIGITALPOWERLINE:
ret = "IP over Power Lines";
break;
case IF_TYPE_MEDIAMAILOVERIP:
ret = "Multimedia Mail over IP";
break;
case IF_TYPE_DTM:
ret = "Dynamic syncronous Transfer Mode";
break;
case IF_TYPE_DCN:
ret = "Data Communications Network";
break;
case IF_TYPE_IPFORWARD:
ret = "IP Forwarding Interface";
break;
case IF_TYPE_MSDSL:
ret = "Multi-rate Symmetric DSL";
break;
case IF_TYPE_IEEE1394:
ret = "IEEE1394 High Perf Serial Bus";
break;
}
return ret;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -