|
Joined: Oct 2003
Posts: 3,918
Hoopy frood
|
Hoopy frood
Joined: Oct 2003
Posts: 3,918 |
mIRC uses the IP provided in the DCC request to connect to a user, not the /userhost reply, so this value is entirely up to the user. Unless the server or your router are modifying this incoming message, the IP mIRC connects to is the result of the DCC request message and nothing else.
To clarify your scenario, could you explain if you are the "destination CLIENT" in your scenario described above? If not, how do you know the destination PORT is not in the port range? Also, the destination client is the originating client (the sender is the one who receives the connection, unless passive is on), so how would the destination client be receiving the accept dialog box? Do you have passive dcc on?
- argv[0] on EFnet #mIRC - "Life is a pointer to an integer without a cast"
|
|
|
|
Joined: May 2010
Posts: 36
Ameglian cow
|
Ameglian cow
Joined: May 2010
Posts: 36 |
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?
Summary
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.
CAN ANYONE VERIFY THIS?
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.
|
|
|
|
Joined: Oct 2003
Posts: 3,918
Hoopy frood
|
Hoopy frood
Joined: Oct 2003
Posts: 3,918 |
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. This is not correct. You can certainly DCC yourself with a properly configured mIRC. I recommend this to users all the time in order to test their router configurations. And yes, I have also seen users successfully perform intra-LAN DCC operations with mIRC too. When you say "nothing happens", do you mean no connection attempt is even made from the target machine?
- argv[0] on EFnet #mIRC - "Life is a pointer to an integer without a cast"
|
|
|
|
Joined: Aug 2010
Posts: 16
Pikka bird
|
Pikka bird
Joined: Aug 2010
Posts: 16 |
Hi there, I don't know if my problem is a script or router problem but hopefully, if you guys can't help you'll be able to tell me who can. I have a D-Link DI-524 router and it has always performed really well. I've used the same mIRC script for years and the port forwarding has never been a problem . . .
. . Until about 2 years ago. For no apparent reason, when I started the script and connected, my IP Address wasn't being automatically filled in the mIRC Options Local Info. The Local Host would be filled in but not the IP Address. Several Ops looked at my settings (mIRC, router, firewall) and everything seemed fine. No-one had a clue. The best they could come up with was me having to manually enter it every time I started the script. This would be ok but if I ever suffered a loss of connection and was unaware of it, on reconnection the IP Address would be empty again. Also I would have to get the IP Address filled within a short space of time or I would be booted from the channel (because I didn't respond to a DCC request that was a pre-requisite for voicing) and of course, this would happen if I reconnected. I figured maybe it was my computer and just lived with it. At least, as long as I got the IP Address in, I could serve properly.
That was on a PC running XP Home SP3. I now have a PC running W7 Home Premium. And I have exactly the same problem - IP Address empty, I still have to fill it in. And what's worse is, on top of that, I still don't respond to DCC Send requests. If do a manual DCC Send and it works fine. I can initiate DCC chat. But unfortunately I've lost my voice on my script. I wondered if maybe it was the script so I found another one but same problem. And a third - but with this one my problem doesn't affect my voice so I've stuck with it. I have had the new Ops look at all my settings but, still, none can figure it out. One of them has changed my mIRC settings to Passive DCC but I can't see that it's made any difference.
I have also reset my router and tried with my Windows Firewall turned off. I know absolutely nothing about scripts and I really really need help with this. If anyone has any idea whatsoever about what's going on I would be so grateful. Cheers in advance for any suggestions.
|
|
|
|
Joined: Nov 2006
Posts: 1,559
Hoopy frood
|
Hoopy frood
Joined: Nov 2006
Posts: 1,559 |
About the use of passive DCC, to save some time I'll simply quote: Passive DCC reverses how the connection is made. The sender usually receives the connection-- with passive DCC on, the receiver receives the connection. (...) [T]he point is that the receiver has to have the port open with passive on, the sender must have it otherwise. This means a passive DCC SEND will not work when the user sends to someone who does not have DCC configured. Passive DCC creates the connection in "reverse" of a normal DCC connection. This means that the person receiving has to configure their router/firewall correctly to receive the file and the sender doesn't have to do anything. In a normal DCC connection, the sender has to configure the router/firewall correctly and the receiver doesn't have to do anything. See where the difference is?
Basically, in Passive DCC, if YOU as the sender cannot configure your ports correctly, then you are stuck using Passive DCC and hoping that anyone wanting to receive from you IS able to configure theirs. If they also can't configure their router/firewall, then they will not be able to receive files from you. That's where the problem is with using Passive DCC... everyone receiving files from you has to configure their router/firewall or they can't receive files from you.
In comparison, if you're using normal DCC, you're the only one who has to configure the router/firewall so it makes it easier for everyone involved and you're pretty much guaranteed to be able to send to everyone as long as they aren't blocking DCCs. • Given that you can send without passive DCC if the correct IP is set at "local", it's probably no port forwarding issue. what are your actual settings at Options:Connect:Local ("On connect, always get:" and "Lookup method")? • While connected to the network, does the command fill the correct IP? If it does, try setting "always get" to "host name" and "lookup method" to "server". If your localinfo hadn't been filled as desired after a reconnect, your problem may indeed be related to a script. You can test this by installing a separate, clean mIRC into a separate folder (choose "portable mode") and see whether you have the same problems with abovementioned settings at "local". If it does not - I once made a small workaround script to retrieve and set that IP. The script was to help users who retrieve a wrong IP at "local" due to a proxy/BNC - but it might help you as well.
|
|
|
|
Joined: Aug 2010
Posts: 16
Pikka bird
|
Pikka bird
Joined: Aug 2010
Posts: 16 |
Hi Horstl, Thanks for the reply. Sorry I don't understand where to enter the /localinfo -u command. I've tried in the script and in Windows cmd but nothing happens. All my Options:Connect:Local are correct as you describe - 'host name' and 'server'. As I said Ops have checked - everything is fine. That's what's so darn confusing about the whole thing. Of course, I suppose there's a chance that they are missing something. And I also said this is the third script I have tried. They have all been clean installs. I am more than happy to post screenshots of anything you might like to look at yourself. Or the Ops that set me up and checked everything have used Crossloop and I'd be happy to do that too. As for your workaround script, I appreciate the thought but I have no idea what to do with it :-)
|
|
|
|
Joined: Nov 2006
Posts: 1,559
Hoopy frood
|
Hoopy frood
Joined: Nov 2006
Posts: 1,559 |
You can type "/localinfo -u" in the editbox of any mIRC window (e.g. the status window). After a few moments mIRC should print some kind of reply (at least some error message) to your status window. Just make sure you are connected while you issue the command because "-u" stands for "userhost" lookup, that is: try to get the IP via the IRC server. In case you don't see any reply to the command in your status window, what reply do you get to the following command? //echo -a $md5($mircexe,2) $script(0) $dll(0) $com(0) $version $os $isalias(localinfo) As for the workaround script: open the mIRC Scripts Editor (Alt-R), go to the tab "Remote", select "New" in the file menu, paste in the code, and "Save as:" "localinfo-IP.mrc". Even if you succeed with the script, I'm curious why the regular lookup isn't working for you...
|
|
|
|
Joined: Aug 2010
Posts: 16
Pikka bird
|
Pikka bird
Joined: Aug 2010
Posts: 16 |
Thanks again Horstl, Sorry I didn't reply sooner but I had to shoot off to work after I posted.
Ok not sure if this is what you're after but this comes up when entering the /localinfo -u command:
[3:28pm] Local host: 203-97-212-82.cable.telstraclear.net (unknown)
It comes up quite regularly in the window so I wasn't sure if that was what you meant.
When I enter the //echo -a $md5($mircexe,2) $script(0) $dll(0) $com(0) $version $os $isalias(localinfo) command I get this:
52f9f2101923e84dd146fd1058d97b60 16 0 0 6.21 Vista $false
Excuse even more of my ignorance but does your script just run automatically on startup? I don't have to do anything with it after creating it in the script editor? If it is meant to run automatically then I don't think it worked unfortunately - still no IP Address entered in Local Info.
And "curious" doesn't even begin to describe it LOL.
PS: If your script hasn't worked should I delete if from mIRC script editor?
Last edited by kiwichick888; 04/08/10 05:00 AM.
|
|
|
|
Joined: Oct 2003
Posts: 3,918
Hoopy frood
|
Hoopy frood
Joined: Oct 2003
Posts: 3,918 |
Keep in mind that 6.21 is not compatible with Vista, you're much better off using the latest version of mIRC (7.1), which has UPnP support and should be a lot easier to configure DCC if you have a relatively new router.
- argv[0] on EFnet #mIRC - "Life is a pointer to an integer without a cast"
|
|
|
|
Joined: Aug 2010
Posts: 16
Pikka bird
|
Pikka bird
Joined: Aug 2010
Posts: 16 |
Hi and thanks argv0, I am running 6.21 but that's the version that came with my script. I'm not on Vista - I'm on Windows 7 (if that makes any difference). But even so, it doesn't explain how all the other people out there with the same script, v6.21 and Vista/W7 aren't having any problems at all (well according to the Ops anyway). And the IP Address not filling has been a problem since I was on XP. The no-respond to DCC requests is new on my W7 computer. I don't have a relatively new router (D-Link DI-524).
|
|
|
|
Joined: Oct 2003
Posts: 3,918
Hoopy frood
|
Hoopy frood
Joined: Oct 2003
Posts: 3,918 |
By "relative" I mean the last few years. Googling shows that the D-Link DI-524 supports UPnP, which means it's relatively new enough. UPnP is a much simpler method of configuring DCC, and I'd recommend it if you're having trouble. You do need 7.1 for this, though.
Upgrading mIRC should generally not affect the script-- if it does, the issues should be minor. I can't guarantee any of this, but it's certainly worth a shot. 7.1 adds plenty of fixes, especially if you're on win7, and possibly has some DCC related changes that may have to do with your issue. It's really hard for any of us here to support a version of mIRC that is almost 4 years old.
If 7.1 does not work, you should at least be upgrading to 6.35, which should be at least 99.999% compatible with your script. This would rule out any dcc issues that had been fixed in recent years.
- argv[0] on EFnet #mIRC - "Life is a pointer to an integer without a cast"
|
|
|
|
Joined: Aug 2010
Posts: 16
Pikka bird
|
Pikka bird
Joined: Aug 2010
Posts: 16 |
Hi again argv0, Ok this is what I've tried:
1. downloaded v7.1 of mIRC and installed as an upgrade over the script I have now - no luck - IP Address still empty. When I enter the IP Address myself I can still do a manual DCC Send and initialize DCC Chat but not respond to DCC Requests. This is so frustrating.
2. did a clean install (to new folder) of just mIRC as a portable app - no luck - IP Address still empty.
Of course I have no idea if there are any other settings I need to make since it's a new version.
|
|
|
|
Joined: Oct 2003
Posts: 3,918
Hoopy frood
|
Hoopy frood
Joined: Oct 2003
Posts: 3,918 |
The IP address won't matter in this case, for 7.1 you would need to configure mIRC to use UPnP. Go to Alt+O -> Connect -> Options -> Ports... and under the UPnP fieldset check IP address, DCC connections and Identd -- that should set you up.
- argv[0] on EFnet #mIRC - "Life is a pointer to an integer without a cast"
|
|
|
|
Joined: Aug 2010
Posts: 16
Pikka bird
|
Pikka bird
Joined: Aug 2010
Posts: 16 |
argv0, Those fields are already checked.
|
|
|
|
Joined: Oct 2003
Posts: 3,918
Hoopy frood
|
Hoopy frood
Joined: Oct 2003
Posts: 3,918 |
Did you enable UPnP in your router? This is often necessary.
- argv[0] on EFnet #mIRC - "Life is a pointer to an integer without a cast"
|
|
|
|
Joined: Aug 2010
Posts: 16
Pikka bird
|
Pikka bird
Joined: Aug 2010
Posts: 16 |
Yes UPnP already enabled
Last edited by kiwichick888; 04/08/10 08:25 AM.
|
|
|
|
Joined: Aug 2010
Posts: 16
Pikka bird
|
Pikka bird
Joined: Aug 2010
Posts: 16 |
UPDATE: As I said earlier I know nothing about scripts but I do understand a little bit about how ports work with them. I have just downloaded two programs - CurrPorts and PFPortChecker.
I know mIRC uses port 113 for DDC chat (yes?). I have it set in my router for TCP (even though an Op set it up this way, I have tried it set to Both as well).
When I have the script running, in CurrPorts it doesn't show mIRC using port 113. It does show port 59 and another port up in the 50000s and if I initiate a DCC Chat it also shows port 1024.
PFPortChecker says port 113 is open which it doesn't do for the other ports mIRC is using - it says 'could not check because another application has that port locked'. This would be mIRC right? So shouldn't port 113 also be locked?
I don't know if any of that is relevant and I may be completely off base here but I figure any little bit of info helps.
|
|
|
|
Joined: Oct 2004
Posts: 8,330
Hoopy frood
|
Hoopy frood
Joined: Oct 2004
Posts: 8,330 |
Port 113 is for identd. DCC Chat and other DCC commands use the port(s) you have set up under the Ports button in mIRC's options.
I don't know if this will help you, but I've had issues with my IP not being filled off and on with Roadrunner internet. When I changed my DNS Servers, it solved the problem. I just used Google's DNS Servers (8.8.8.8 and 8.8.4.4). You can set those up in your network configuration. It's worth a try at least.
Invision Support #Invision on irc.irchighway.net
|
|
|
|
Joined: Aug 2010
Posts: 16
Pikka bird
|
Pikka bird
Joined: Aug 2010
Posts: 16 |
Hi there Riamus2, I vaguely recall reading something about that. It's certainly worth a go but could you please give me some more specific instructions about setting up my 'network configuration'. Cheers.
|
|
|
|
Joined: Aug 2010
Posts: 16
Pikka bird
|
Pikka bird
Joined: Aug 2010
Posts: 16 |
Ok Riamus2 I took a gamble and went to my Wireless Network Connection TCP/IPv4 Properties and changed DNS from automatically obtain to the numbers you gave me and OMG it worked!!!! You are a legend!!!! I can't believe it's been over 2 years and it was that simple. Funny no-one else has suggested it, and I've had loads of people checking it out. Thank you so so so so much.
|
|
|
|
|