I have both the requesting and destination clients as separate computers on my local network. The local network is connected to my ISP through a router with built-in NAT. EACH of the computers used in the test has a separate range of ports reserved for DCC, with port-forwarding enabled in the router to match.

Passive DCC is OFF for both computers. Recall that my router provides NAT services: the requestor and target computers both have the SAME external IP address, though their local network addresses are different.

I captured the exchanges for network login and DCC requests at three points last night: using WireShark on each client computer and Windows Network Monitor on the local name server (which has visibility of the entire network.) I captured the exchanges for two different IRC networks.

Network One
Requestor --> Server
NOTICE <target-nick> DCC Chat (<requestor-ip>) <port-number>

Server --> Target
<requestor-host-hidden> NOTICE <target-nick> DCC Chat (<requestor-ip>) <port-number>

***note: <requestor-host-hidden> ::= <requestor-host> truncated with IP address encoded as a hex string

Requestor --> Server
PRIVMSG DCC CHAT chat <requestor-ip> <port-number>

Server --> Target
<requestor-host-hidden> PRIVMSG <target-nick> DCC CHAT chat <requestor-nick> <requestor-ip> <port-number>

***note: <requestor-host-hidden> ::= <requestor-host> truncated with IP address encoded as a hex string

At this point, the target computer pops up a DCC Accept dialogue box. After accepting the request, nothing happens until the request times out: there are NO attempts from the target computer to initiate the chat session.

Network Two

A detailed comparison of the sniffer traces shows only one significant difference: this network does not hide the requesting client's host address when forwarding NOTICE and PRIVMSG packets to the target computer.

Verification of Test Results

I then switched the roles of the two computers and observed identical results. I did not attempt DCC Send because if DCC Chat won't connect, what would be the point?


I'm beginning to think that mIRC simply does not attempt to respond to a DCC request if the requestor's IP address is the same as the target's IP address.


My next step will be to see if I can get into a successful DCC Chat session with someone on #mirchelp: if that succeeds will continue to DCC Send.