DC++ is an open-source, ad and spyware-free client, written in C++ for the Direct Connect protocol originally developed by Neo-Modus.com, that allows you to share files over the internet with other users. The client is often updated at least once a month for bugs and new features.
Original and additional features over NMDC v1 (many now which have found their way into NMDC v2) :
Much more stable. It wastes less memory, is faster, file size is smaller and long queue wont freeze the whole program. Neo-Modus Direct Connect eats memory and resources.
You can connect to many hubs at same time and search for files from all of them with same search.
You can continue downloading the same file from other users if somebody leaves.
You can see timestamps in the chat. Chat won't jump to end when you roll back old messages.
Bot messages wont popup new windows, you can also filter bot messages off.
No Ads.
Search is more versatile.
Hublist is downloadable from multiple servers/sources.
Features - Configurable:
Automatically search for alternate download locations (0.173) - Allows DC++ to try to find other locations to download your files.
Automatic Share Refreshing (0.172) - Every hour DC++ refreshes your share content.
Use small send buffer (0.181) - If uploads slow down your downloads A LOT you may try this option.
SFV checking (0.22) - Many downloads on DC contain an sfv file to check the integrity of a download. DC++ can on-the-fly calculate CRC-32 values for a file and compare it against the sfv file. If the check fails, the file is automatically downloaded once more from the same user and if that fails, the user is removed as a source.
Rollback (0.11) - When resuming a file to ensure it contains no errors. If there is an error DC++ deletes rollback bytes and checks again.
Write buffer (0.16) - Anti-fragmentation feature, DC++ saves every X bytes to keep fragmentation low.
Language File (0.16) - A XML-file containing most of the text used in DC++. You can specify a file to have DC++ in your favorite language.
Logging (0.163) – Log your downloads, uploads, and various chat windows.
Network Statistics (0.300) - Go to the View menu -> Network statistics
URL handler (0.18) – URLS of the type dchub:// to open in DC++ from your browser. Links in main chat with www, http://, or ftp :// automatically open in your default browser when double-clicked.
Slot Closing (0.20) - If a user leaves the hub DC++ will close his slots, if the user is back within 10 minutes DC++ will grant him a slot.
Anti-Fragmentation (0.241) - When downloading, it creates a file of the expected target size with unspecified content.
Custom Descriptions (0.24) - Custom per-hub user description available for favorite hubs
Selectable Hubs to Search (0.301) - You can choose which hubs you want to search in.
ADL Search (0.24) - Tool for fast searching of directory listings downloaded from users
User Country (0.402) - Show the users country abbreviation in the IP field
Features - Non-configurable:
File Hashing (0.307) - Merkle trees and tiger hashing are used for file hashing.
DC++ user detection (0.11) - Those appear blue.
Passive user detection (0.154) - Those that are behind a set of bricks are passive. (detected when the user searches or tries to connect to you)
Dupe file removal (0.154) - Files with same name and size are automatically removed from your share and others.
Banning Prevention (0.23) - If DC++ receives "banned" during the login phase, it'll stop automatically reconnecting
Tab Nick Completion (0.300) - Automatically completes the nickname you are typing by hitting TAB once the name is partially typed.
Command History Scrolling (0.302) - Use ctrl-up/down/home/end to view previous things typed.
$GetZBlock (0.302) - Sending files using dynamic compression
$MiniSlots (0.13) - Uploading filelists and files <16 kB to other DC++ users WITHOUT requiring a slot
$UserIP (0.305) - Server side IP detection (automatically used if the IP field in settings is blank)
$NoHello (0.305) - A hub bandwidth easing feature for the hubs that support it.
$NoGetINFO (0.301) - A hub bandwidth easing feature for the hubs that support it.
ADC Protocol (0.402) - A text protocol for a DC style network
What is ADC?
ADC is a new protocol for the DC++ client. It is still under development. The specifications of the protocol can be found here . It adds the capability to do the following:
Different shares in each hub
Real user identification
Nickname changing without having to reconnect
Direct client to client searches
Higher hub user counts, due to the lack of MyINFO which takes up a considerable amount of bandwidth.
Encrypted password transmission (Tiger Hash).
DC++ Change Log Related Entries:
0.669: ADC url's clickable (thanks naga), Added initial ADC file transfers support, ADC hub connectivity improved
0.668: Fixes to ADC implementation
0.4034: More ADC fixes (thanks sed)
0.4033: Various ADC patches (thanks sedulus), ADC INF updates only send the necessary info (thanks sed)
0.4032: Fixed an issue with the ADC parser (thanks trem), Fixed an issue with the adc parser (thanks sed)
0.402: Begun work on the ADC protocol (major change)
What is a hub?
"Hub" is some kind of router (not in the sense of a Cisco router), which allows clients to connect each other. It's not called a server because it won't share any files, it only routes chat, search requests and results. All file transfers is being made directly between clients, not through the hub.
A guide for setting up your own hub can be found here .
What is an Operator
An operator is a person who supervises relevance of chat and files being shared. Operators can remove temporary or permanently remove irrelevant users by their own consideration. You can recognize operators from the key icon in the user list (some users with keys can be bots, follow the conversation).
Where can I get the software for windows?
The following is a comparison table of the various popular DC++ clients and others that use the Direct Connect protocol. You can see from the columns of features, how the clients differ from the original DC++ and other modded clients. If you would like your client added, send me a PM and I'll consider adding it. The table is a work in progress, suggestions are welcome.
DC++ Based
Client Name DC++ ver / Client ver Rich Text Color Segment Downloading File Hashing Upload Lim/ Disc Slow Speed IP / Lock / PK / Supports Info Client type string generator Player Integration Share Checking $UserIP $User Command Other Features
Client Name DC++ ver / Client ver Rich Text Color Segment Downloading File Hashing Upload Lim/ Disc Slow Speed IP / Lock / PK / Supports Info Client type string generator Player Integration Share Checking $UserIP $User Command Other Features
Client Name Latest Version Rich Text Color Segment Downloading File Hashing Upload Lim/ Disc Slow Speed IP / Lock / PK / Supports Info Client type string generator Player Integration Share Checking $UserIP $User Command Other Features
Yes! In DC++ go to File -> import NMDC queue… Browse to your NMDC directory and select queue.config.
How to share network drives
DC++ 0. 404 or newer
DC++ clients after 0.404 are able to successfully share network drives from within DC++ with out mapping them.
Go to File -> Settings -> Sharing -> Add Folder
Navigate through your home network to the computer with a share and select one.
Now you should see it listed as a shared folder in DC++ DC++ 0.305 to 0.403
DC++ clients 0.305 to 0.403 support sharing networked drives via their UNC name (i.e. \\servername\share), but the GUI does not have the option to navigate through My Network Places entirely. This leaves two methods to sharing a network drive:
Follow the method below in the next section for older DC++ clients
Edit your DCPlusPlus.xml file and add the UNC path for a share.
F:\My Music
\\somecomputer\share
DC++ 0.304 or older
NeoModus Direct Connect nor DC++ will allow you to directly share a network drive. However, there is a solution to sharing them!
Simply map a network drive to a drive letter in windows (i.e. Z:\share). Once the network drive has been mapped to an drive letter, you can share it in NMDC or DC++ like a normal folder.
Open up Windows Explorer or My Computer. Go to Tools -> Map Network Drive .
Type in the computer name and the share point (or browse to it). You might need to specify a different username when connecting to the computer. Click on " different user name " and enter in the name/password.
Inside DC++ sharing setting, select the drive you just mapped (Z: in this example). That's it!
Why do I need active mode?
In passive mode, DC++ will only make outbound connections to other users. All searches will be sent through the hub, and search results will be returned through the hub as well. DC++ will return a maximum of 5 search hits for a passive user. Passive users cannot download from other passive users. Passive mode is an extra strain on hubs, so please do not use it unless you must. DC++ users in passive mode will have M:P in their DC++ tag.
That being said, active mode on DC++ will make inbound and outbound connections to other users. All searches will be sent through the hub, and search results will be returned directly from active mode users and through the hub for the passive users. Active users can download from either active and passive users. Obviously that means you can connect to a larger group of people.
How to set up active mode with a hardware firewall/router?
Active mode requires both TCP and UDP access on the same port incoming and all ports outgoing for DC++ to work properly.
You can simplify the process of setting up active mode if your router and operating system is UPnP compatible. Read this FAQ for more information.
First you need to set up the router to forward the connections to the computer with DC++. This is could be called port mapping, port redirecting, port forwarding or something like that. Find out how to do this with your router / NAT in the user manual.
You need to forward one port. Select a number between 1024 - 65535, they should mostly all be free. Make sure both UDP and TCP are being forwarded on the port you chose.
The IP that you are forwarding to should be the internal IP address of your DC++ computer. It usually begins with " 192.168 ", " 172.16 ." or " 10.x .". Go to the command prompt and type: ipconfig (Start Menu | Run | cmd /k ipconfig )
When you have mapped a port on the router, open up DC++ and go to Settings. Select active mode. In the port field, enter the port number that you are forwarding on the router.
In the IP field, you need to enter the external IP address of your router. This can easily be checked on here .
It should now be working. If it is working for a while, but the next time you use DC++, you only get Connection Timeout's or no results when searching , your IP (either external or internal ) is likely to have changed.
If you find the external IP is constantly changing (DSL users often experience this), you can set yourself up with a dynamic name (i.e. myname.kicks-ass.net ). Such as Dynip or DynDns and put that name into the IP field. Make sure to use an update client , which will update the dynamic name service with your latest IP.
For Linux based firewalls/routers, take a look at this FAQ on this subject.
Here are several how-to guides with screen shots for various models. Don't hesitate to take a look how its done even if your exact model isn't list, most likely it will provide a useful guide and help setup yours.
What about Zone Alarm?
Older versions of Zone Alarm had issues with DC++, which caused corrupted downloads/uploads. This results in the ' Rollback Consistency ' error message. Other problems users frequently have is ZA blocking DC++ even though it is fully allowed. In this case, you need to completely uninstall it as disabling it will not help, and then get another firewall.
Windows XP?
Service Pack 1 : Its strongly recommended that you do not use the SP1 firewall and instead use a third party one. Make sure to disable the XP firewall if you do choose this option. If you really must use it, then checkout this guide on how to set it up. Remember you need both TCP & UDP.
Service Pack 2 : The firewall in SP2 is a lot more robust than its original incarnation. While it does not offer a plethora of options, its suitable to use by itself for protection. Its wise to enable logging of packets that the firewall drops for troubleshooting applications. To do this, go to Control Panels -> Windows Firewall -> Advanced Tab -> Security Logging -> Settings. Enable Log Dropped Packets . The log file is located at C:\WINDOWS\pfirewall.log.
DC++ Changelog Related Entries :
0.4033: Added UPnP support (thanks mark gillespie)
0.305: Added support for $UserIP, %[ip] as user command parameter and server side IP detection (automatically used if the IP field in settings is blank)
0.242: Fixed problems with changing active port
0.21: Fixed port changing bug (DC++ would still listen to the old port until restarted)
0.20: A random free port between 1025 and 32000 is now used in active mode, unless a port specifically has been set.
0.16: Changed default port to 1412, should improve compatibility with a lot of firewalls
0.03: New settings, including passive mode and active port selection
:
How do I set up active mode with a Linux based firewall/router?
It depends on what kernel version you are using. With 2.4 you can choose between doing postrouting or the easier prerouting. The difference is if you do a postrouting, all clients withing your internal network (LAN) can connect and download/upload between eachother. Postrouting is not nessesary if you are the only client wich uses DC behind the router/firewall. Examples below uses the following settings: External ethernet card: eth1, external IP 213.112.8.55, firewall (router) IP: 192.168.0.1, client IP: 192.168.0.2, external and internal port: 555
Here's what you have to add to rules (assuming loc is the zone where your computer is located, 192.168.0.7 is your computer's IP, 666 is the port you wish to use and 123.45.67.89 is your external IP):
#ACTION
SOURCE
DEST
PROTO
DEST PORT
SOURCE PORT(S)
ORIGINAL DEST
DNAT
net
loc:192.168.0.7
tcp
666
-
123.45.67.89
DNAT
net
loc:192.168.0.7
udp
666
-
123.45.67.89
:
How to setup active mode on FreeBSD (using ipfw/natd firewall )
Edit your ipfw rules list (usually something like /etc/rc.ipfw) . In there somewhere, you should have a rule that diverts all traffic to natd, which should look something like:
${fwcmd} add divert natd all from any to any via ${natd_interface}
Below this, add as your next rule: # Direct Connect Active Mode Port Forwarding
${fwcmd} add pass all from any to any 1776 via ${oif}
${fwcmd} add pass all from any to any 1776 via ${iif}
For "1776" replace any port (preferably something above 1000) that you would like as your forwarded port. Save and close /etc/rc.ipfw.
Next open up your /etc/natd.conf file. Make sure the top line has your interface listed (replace "de0" with whatever your outside interface is): interface de0
Then add at the end the following two lines: redirect_port tcp 192.168.70.2:1776 1776
redirect_port udp 192.168.70.2:1776 1776
For 192.168.70.2, substitute the internal IP of your machine running DC++. For "1776" substitute whichever port you used above in your /etc/rc.ipfw file.
Finally, we need to reset ipfw and also natd.
Type: ps aux | grep natd
Find the process # for natd. Now we need to kill the process and restart it:
Type: kill -9 && natd -f /etc/natd.conf
Last step, time to reset ipfw to make sure our traffic gets through: /sbin/ipfw -f flush
/bin/sh /etc/rc.ipfw
How can I configure DC++ to use UPnP ?
Universal Plug and Play (UPnP) is only currently supported on the Windows XP platform. In addition, you also need UPnP capable hardware (typically a broadband router using NAT traversal). If you meet both of these requirements, setting up DC++ is normally a simple process. UPnP support is only in DC++ 0.4033 and later .
To enable UPnP on DC++, open the Settings panel, select Advanced, scroll down to the bottom, enable "Use UPnP Control". Restart DC++. If your UPnP system is setup correctly, DC++ will now automatically create the required port mappings for DC++ to operate in Active Mode. It will also detect your external IP address, and switch into Active Mode.
If UPnP works successfully or unsuccessfully, fill out this form so other users can know which set ups work.
Troubleshooting:
If you are having trouble getting this all to work (or see messages in the DC++ log like " Failed To Create Port Mappings "), and you are sure you meet the minimum requirements mentioned above, download the UPnP diagnostic tool. You can get it here . This tool will tell you what network interfaces on your computer support UPnP. If none of your network interfaces are reporting UPnP capabilities, try the following suggestions:
Ensure your UPnP hardware has the UPnP service switched on (some routers default to off), consult your manufacturers documentation.
Ensure Windows UPnP services (Control Panels -> Admin Tools -> Services) are running. "Universal Plug and Play Device Host" and "SSDP Discovery Service". Both of these XP services should be set to "Automatic" startup and "Started" status:
Switch on the UPnP User Interface. To do this: Open "My Network Places", and in the Network Tasks Panel, select Show icons for networked UPnP devices .
If UPnP is working, you should see your routers name in My Network Places:
Also, when you go to: Start | Settings | Network Connections, you should see Internet Connection listed under the Internet Gateway category.
Reboot both your PC and your UPnP device (router).
If you do not see your router as a network device in "My Network Places" after several minutes, UPnPTest will fail to create an UPnP mapping to the router, resulting in something looking like: INFO: Adapter #0 - 192.168.8.17 - UPnP Disabled. Make sure the windows firewall or your third party firewall is not blocking UPnP packets.
Windows XP Firewall:
Go to Control Panels -> Windows Firewall -> Advanced Tab -> Security Logging -> Settings. Enable Log Dropped Packets . The log file is located at C:\WINDOWS\pfirewall.log If you see any packets being dropped with the port 1900 or 2869, the the firewall is misconfigured and is preventing UPnP from working.
Third Party Firewall:
Checking this setting varies widely between firewalls. Most decent firewalls have some sort of logging function, where one can see what the firewall is blocking. Look for "UPnP" or ports 1900 and 2869.
At the time of this writing, I know Norton Internet Security 2005, blocks UPnP and does not log it. Read its FAQ on how to unblock.
If the diagnostic tool is now still not reporting any UPnP devices, you should start considering more drastic actions like upgrading your router firmware, as many routers have UPnP implementation bugs.
If you have done all of the troubleshooting tips above, and are still having UPnP problems, give send me a email, I will try to help. mark.gillespie@gmail.com
VERY IMPORTANT NOTE: I will ignore ALL support requests from people who have not tried the above troubleshooting tips and do not provide at minimum the following information:
What steps you have already done
Your UPnP device model number and firmware version.
Your operating system and service pack level.
What firewall you are using (if any).
Without this information, please do not expect a reply... I sorry I have to be so strict, but some of the emails I have received need to be seen to be believed!, and the crystal ball is currently out of action..
Submitted by mgillespie
DC++ Change Log Related Entries:
0.669: Hopefully fixed an UPnP crash
0.666: Fixed a crash in the upnp code
0.4033: Added UPnP support (thanks mark gillespie)
How do I log on as a register user/op?
There are two ways.
One is to set your default nick (Settings -> General) to the nick you have at the hub in question and then connect. You will be prompted for your password every time.
Second way is to add the hub to your favorites. You can then choose to log in automatically by specifying a nick / password combination for that hub (note; you have to connect from the favorites, when connecting from the public hub list, DC++ will always use the default nick and prompt you for a password)
Any websites to help me set DC++ up?
Broadbandreports.com DC++ FAQ
This is written by BSOD and is partially a mirror of this site. It covers more information on software/hardware firewall setups and hub software.
DC++ Guide
The following is a great guide with plenty of pictures on how to do basic setup of DC++, written by TheParanoidOne on the DC++ forum.
indx.f2s.com
Another guide on the basics of setting up DC++
One of the benefits of using DC++ is the ability to switch the hub list that is downloaded. To start out, Hublist.org is a great site with a large list of hub lists.
To use another hub list, open up File -> Settings. Click on the Download tab and then replace the "Public hub list URL" at the bottom. DC++ will only use one hub list at a time, but you can specify several in case one list goes down. Place a semicolon between each hub list.
If none of these work in DC++, try pasting a link into your browser. If a file does download, then you have some sort of firewall blocking DC++ specifically. If nothing downloads, then a firewall is blocking all your internet traffic to that site or the list is down.
DC++ Changelog Related Entries :
0.4033: Added (initial) support for hublist.org xml hublists
0.402: Copy address to clipboard from public hub list (thanks joakim tosteberg)
0.305: Really fixed hublist space trimming =). Added accelerator for filtering in public hubs (thanks gargoyle)
0.304: Fixed trimming of spaces for http downloads (hub list...)
0.26: Default hub list now points to one that works
0.25: Fixed public hub list mouse clicks and reopening (thanks todd)
0.241: Fixed error reporting for hublist download
0.233: Fixed another thing with hub lists being unnecessarily downloaded (thanks todd pederzani)
0.23: Hublist is no longer loaded in the background by default when starting the application. Fixed some proxy connection problems for the hublist (thanks Ondrea (or is it Ondra or Ondrej? =)). Disabled automatic opening of the hublist.
0.181: Fixed a bug with bad hublist server names (empty ones, not starting with http://... )
0.174: Fixed some minor hublist bugs
0.172: Added support for bzip2-compressed hub list downloading
0.17: Removed the public hublist multi-select feature
0.163: Added public hublist filter. Changed error messages in public hubs frame. Added proxy support for downloading the hub list. Fixed a crash when loading invalid hub lists
0.12: Added right-button menu to Public Hubs
0.11: Public hubs automatically appears on startup
0.03: Hub list sorting.
0.01: List hubs, connect to them and chat
My university blocks DC++, anything I can do about it?
:
Unfortunately, probably not. The majority of schools have moved over to a solution from Packeteer or a similar company. This software/hardware solution has the ability to look into a TCP packet, decode the application layer data and then throttle/block accordingly.
There could be a way to get around this, but it's no easy task. It would involve setting up a host off campus which is not influenced by the schools packet shaping. Then setting up a tunnel (socks, proxy, ssh, vpn, etc) and routing all your DC++ traffic through it. It will still be affected by the schools packet shaping, but there is a chance the tunnel you created has a higher priority/larger pipe than the P2P one.
Some schools might have their network behind a NAT , in which case you are SOL for an active connection. Furthermore, if this is the case then they have full control over connections and there isn't anything you can do. Try passive mode and cross your fingers.
A few schools just use simple port blocking. DC++ automatically uses a wide range of ports for outgoing traffic to help bypass port blocking. If the school is smart enough to block port 411 outgoing connections, then you are pretty SOL since that is the port most hubs use. One could try to connect to a hub that uses an alternative port ( i.e. myhub.kicks-ass.net:2385 ). Once again, you could possibly set up a tunnel or port mapping, but those are complicated solutions that not many can achieve (and out of the scope of this FAQ).
A solution which might work is to use a proxy program/service to bypass their firewall, such as HTTP-tunnel or Hopster .
How can I configure DC++ to use it with proxy?
Currently, proxy connections are only supported in DC++ for downloading the public hub lists. To use a HTTP proxy for this, enter the full proxy address (http://my.proxy.com:8080) in the settings, under "HTTP Proxy".
In other words, connecting to a hub through a proxy is not supported.
Using a proxy to tunnel all DC++ traffic through it beyond the scope of this FAQ. While using a proxy can be helpful to help mask your real IP, it can also be abused for the very same reason, which is why it will not be covered.
What are all the / commands for DC++?
All of these may be type in the main chat or in a private message window.
/grant
grants a slot to the user of the private chat window you type in
/getlist
Command to get users list from private chat
/close
close current window
/help
short help message
/refresh
Refreshes list of shared files
/away
Specifies a message to auto-respond in PM's while you're AFK (there's a default message so you don't need to specify one)
/back
Turn away message off
/slots <#>
Changes number of slots to <#>
/clear
Clears the main chat windows
/ts
Switches timestamps in chat windows on and off
/showjoins
Toggles joins/parts messages for the current hub
/search
Searches for
/join
Joins specified hub
/pm
Opens a private message window to the user
/g
Search Google
/imdb
Search IMDB
/fav
Adds current hub to your favorites
/dc++
Gives a comment about DC++ and shows the URL where you can get it
Why don't I get any search results?
Assuming that you can connect and chat with users, this is usually caused by a firewall or connection sharing. There are several things you can try:
1. Enter your IP in the settings dialog and try again. Find out the IP from here .
2. Check your firewall configuration. You need to make sure it's allowing or forwarding incoming connections on the port specified in the settings (412 or 1412 by default). You have to enable both TCP and UDP traffic (if you can download files, but not search, this means that UDP packets are still blocked). Checkout this FAQ
3. Your school/work might be blocking DC traffic, read this FAQ .
4. If the above things don't work for you, you'll have to use passive mode (if the hub allows it).
5. If you're using DC++ 0.4034 or 0.666, there is a bug that prevents passive mode users with international characters from being able to search. Upgrade to 0.667 or later.
How do I resume my downloads in DC++?
DC++ will by default, automatically search for alternative sources for files in your download queue. If it does not, make sure the option is enabled (File | Settings | Advanced | Automatically search for alternative download locations ). At the time of this writing, it searches based on the existing filename and the file size. Any matches that are the exact same size are added as alternative sources. The file(s) will now resume downloading. In the near future, DC++ will search for files based solely on its TTH value .
You can manually add files into the download queue by similar methods. Search for a file (its best to also specify a minimum file size to reduce the number of unneeded results). If the file is exactly the same size as the one in your download queue, you can right-click on it and select Download to.. The existing file should be in the submenu. If not, then its not the same size or TTH value.
How do you resume or overwrite in DC++ from a different user?
In DC++ you have the option to resume or overwrite a file from a different user to download a file. When choosing the file you want to download, you have the option of downloading it to a different name using "Download to...". This allows you to choose whether to resume to an existing file or choose another target file and start over...
:
Whats the meaning of the status bar at the bottom ?
:
H: 0/1/8
Number of hubs you're connected to. 0 unregistered hubs / 1 registered hub / 8 hubs OP'ing
Slots : 0/2
Slots open. 0 slots free / 2 slots total
D : 1.13 GB
Data downloaded in current client session
U : 865.06 MB
Data uploaded in current client session
D Lim : 0 B/s
Download speed limit. 0 Bytes a second
U Lim : 11.00 kB/s
Upload speed limit. 11 Kilobytes a second (only present in DC++ mods)
D : 1.31 kB/s (0)
Current download speed. 1.31 Kilobytes a second. ( Number of current downloads: 0 )
U : 13.40 kB/s (2)
Current upload speed. ( Number of current uploads: 2 )
Some hubs block me from using DC++. How do I prevent them from doing this?
There are two real solutions here,
1. Convince those hub owners that DC++ is a good thing, which in many cases can be hard because quite a few of them are just plain stupid and won't listen no matter what (even if you're only connected to their one hub and play by the same rules as nmdc users...)
2. Don't go into those hubs! There are plenty of good hubs that don't care or even support usage of ++
3. Modify the client, but that's not a good long-term option because it often leads to banning
The meaning of the ++ tag
This table is based off the latest client versions at the time of writing
Client
Tag
Description
Information
DC++
<++ V:x,M:x,H:x/y/z,S:x,O:x>
V: Client v ersion
M: M ode, A = Active, P = Passive, 5 = Socks5
H:
x = number of h ubs connected to where you're not a registered user
y = number of hubs you're registered in
z = number of hubs you're registered as op
S: Number of s lots open
O: If the current total upload speed of a user is lower than the number after O:, DC++ will automatically o pen another slot.
BCDC++
<++ V:x,M:x,H:x/y/z,S:x,O:x,B:x>
B: Upload b andwidth limit in kb/s (optional and only shown when using BCDC mode)
CZDC++
<++ V:x,M:x,H:x/y/z,S:x,O:x,L:x>
L: Upload bandwidth l imit (optional and not always shown)
DC:Pro
F: Bandwidth limiting ( optional and only shown in the description when using DC++ mode )
x = Download limit
y = Upload limit
DC++k CDM
<++ V:x,M:x,H:x/y/z,S:x,O:x>
V:y CDM version
DCDM++
<++ V:x,M:x,H:x/y/z,S:x,O:x,B:x>
B: Upload b andwidth limit in kb/s
DCGUI
H: The number of h ubs the client is connected to.
L: Upload bandwidth l imit
iDC++
<++ V:x,M:x,H:x/y/z,S:x,O:x>
V:y iDC++ version
MS++V
<++ V:x,M:x,H:x/y/z,S:x,O:x,B:x>
B: Upload b andwidth limit in kb/s (optional and only shown when using MS++V mode and in > 3 hubs)
NMDC v2
O: has a different meaning then in a DC++ Tag.
O: Number of o pen slots.
oDC
5.3 and greater change the Client Name and Version fields
PhantomDC
<++ V:x,M:x,H:x/y/z,S:x,O:x,B:x>
<.P>
B: Upload b andwidth limit in kb/s (optional and only shown when in PhantomDC mode)
rmDC++
B: Upload b andwidth limit in kb/s [rmDC++ mode]
D: D ownload bandwidth limit in kb/s [rmDC++ mode]
Client can emulate DC++, RMDC, zDC, CZDC, BCDC, oDC, Phantom
StrongDC++
<++ V:x,M:x,H:x/y/z,S:x,O:x,L:x>
V:y StrongDC++ version [StrongDC++ mode]
L: Upload bandwidth l imit (optional and only shown when in CZDC / StrongDC mode) [CZDC mode]
zDC++
<++ V:x,M:x,H:x/y/z,S:x,O:x>
zDC++[V:x]
V:y zDC++ version
What to do if I've been banned?
There are two types of bans, temporary and permanent.
Temporary bans last for 10 minutes (usually) and can occur for various reasons ranging from an unsuccessful connection attempt (connection was broken while sending a command for instance) to you being kicked from the hub (most likely to happen).
Permanent bans are entered manually or scripted and they last until the permanent ban list is cleared or somebody removes you on the hub. It means that your Nickname / IP is not allowed to connect to that hub any more, neither with DC++ or NMDC. Most hubs have reasonable owners and OP's that ban for logical reasons such as fake sharing, sharing illegal or unethical things (child pornography or nazi propagand spring to mind). There are also those that will ban you for less reasonable reasons, such as you're choice of client or because the OP has a sore tooth...if you run into the second type, the best thing you can do is to avoid it in the future, who cares about them anyway? If you've been banned for reasons of the first category, you've only got yourself to blame...
You can either:
Fix what was wrong and wait for the ban to expire, if it is a temporary ban.
Contact one of the hub ops outside of the hub. You may find contact details in the hub's welcome message or website if they have one. Hublist.org is useful tool for finding users in other hubs. Googleing for the OPs name might also turn up a contact method.
Get someone else to go into the hub for you to plead your case.
Move on to another hub. There are plenty out there.
Connection refused by target machine
This usually means that there is no hub running on the machine you're trying to connect to. If you got the address from a hub list, try again later as it might have temporarily been taken down (or it's under heavy load and can't handle your connection at the moment).
This message can also occur when a firewall is blocking DC++. If you are running a software firewall, delete the rule for DC++ and have it recreate it. If that does not work, uninstall the firewall and try again (in many cases, simply disabling the firewall will not work).
If you are still unable to connect to any hub in the public list, then your only option is to try the suggestions in this FAQ .
Connection Timeout
This is most often caused by a firewall blocking DC++. Things you want to check: XP Firewall, Software firewall (Kerio, Norton Personal Firewall, Zone Alarm, Sygate, etc), or a router/NAT (this includes those connecting from a University or workplace).
To resolve this issue, there are several things one must check:
Disable the XP firewall. Follow the first part of this guide to where its locataed.
Setup rules in your software firewall to allow DC++ traffic through. Many guides can be found here .
Enable port forwarding on your router. Follow this FAQ on how to fix it.
Connect to hubs on non-standard ports, which can be found by looking through the public hub lists for those which have port numbers appended (i.e. myhub.kicks-ass.net:9821 )
If you're connecting from a University or workplace, then read this FAQ . Often there is nothing you can do to make DC++ work.
Change to passive mode.
What does search spy do?
The search spy shows the most popular things that people search for and some other statistics. The first column is the word they've searched for (what they typed into the search window). The second column is number of times this word has been searched for against your DC++ client.
The statistics are reset every time you close the spy window. The status bar at the bottom also shows the total number of searches while the spy was open and the average number of searches per second.
DC++ Change Log Related Entries:
0.4034: Added last search time to search spy (thanks ullner)
0.177: Added a search hit counter to the search spy
0.173: Added some stuff to the search spy (useless features are the best...=)
0.163: Added search spy window with counter
How do I use the public hublist filter?
Type in something you're interested in and press enter. The hub list will then be filtered so that only hubs containing the string you've entered will be shown.
Example:
Type anime and press enter and you will only see hubs that have the word anime in their name, description or address
To restore the full list, clear the edit box and press enter. Here is a list of Alternative hublists one can use.
How are automatic searches matched?
:
For this feature to work, you'll need to have it enabled. File -> Settings -> Advanced -> Automatically search for alternative download locations.
Basically, the same algorithm as "search for alternates" is used. All non-alphanumeric characters from the filename are removed (.-_ and so on), and the search is sent. Then, any result returned that has exactly the same size is added as a source. All in all, it's not an exact filename match but the filename still plays a central role (otherwise, for instance, rar sets would be added to the wrong rars).
Since DC++ 0.402, if a file has a TTH root, autosearching will use the root hash instead of the file name for its search.
DC++ Change Log Related Entries:
0.4033: Removed autosearch string, it's not used any more, Fixed a bug with autosearch repeating the same search needlessly (this should result in fewer autosearches, good for the hubs)
0.4032: Fixed issue with autosearch not getting filelists, Fixed an issue with autosearch by tth not being done
0.402: Automatic search matching is now done exclusively by TTH for those items that have a TTH root and by exact filename for those that don't., Matching by name removed for queue items with a TTH root (for autosearches), Autosearch is done by TTH for queue items that have a root, Fixed a rare deadlock when autosearching
0.307: Added option to match autosearch filenames exactly to further avoid the wrong file being downloaded (default on)
0.306: Changed autosearch so that it only searches if less than 5 sources are online, this should stop galloping filelist downloads as well
0.305: Added option to automatically download filelist and match it on autosearch match. This will dramatically speed up autosearching, lessening the strain on the hubs as less searches have to be done.
0.304: Fixed a bug in autosearch when using auto search strings (thanks ilkka sepp?l?)
0.302: Updates to the autosearch feature
0.26: Search for alternates now sets file type as well (and should work correctly with sizes...)
0.24: Doubled interval between autosearches (2 minutes now, and 60 between each research of the same file), this to ease the bandwidth load on busy hubs
0.23: Automatic search now searches with type if possible (to ease the load on clients)
0.18: More changes to the autosearch, it should now be more random and therefore yield better results, Removed sources are no longed automatically readded by the autosearch feature
0.177: Made autosearch more effective (much less hub bandwidth usage...)
0.173: Improved the autosearch algorithm a little bit, Fixed search for alternates bug
How do I protect myself from search spam in DC++?
By doing nothing!
DC++ automatically does basic search spam protection for you. Keep in mind, that sometimes, when DC++ detects a search spam, it might be because the hub is overloaded and sends searches in big lumps, making the flood trigger react as too many searches arrive at once. If more than 5 searches are received from the same user within 7 seconds, DC++ will send out this warning. Also, if a thread in DC++ hangs and consumes full CPU usage (like opening a really large filelist), it might also trigger the search spam notice.
‘No users to download from' - I just added one!
When I search for a thing, its comes up that there are people with slots free, I try to download and then it says "No users to download from" Despite the fact that I have searched the second before (and searched again afterwards and they are still there), they have slots free and I can't download. So what is the problem?
Look in the errors column in the queue for more information. The file might be missing or corrupt for instance. Most often it is cause from a Rollback Inconsistency.
What is a Rollback Inconsistency?
This message means that somehow the data has become corrupted during a transfer. Usually its because one of the users, either you or the one you are downloading from, is using a bad firewall such as ZoneAlarm which is intercepting some packets. There are three things you can try to fix the problem:
You can attempt to fix the file by chopping off the rollback bytes, using a tool like cutoff .
Delete the file and redownload it
Completely disable the rollback feature by changing the value in Settings -> Advanced to 0. You can do this, but at your own risk . The rollback is a scheme to ensure that the file you're resuming and the file you're downloading from a remote source are the same. If you disable it after getting the rollback inconsistency message, there will be corruption.
What is a TTH Inconsistency?
This message means that the file you have attempted to download contains a different TTH hash than the one in your download queue. There are two things you can do to fix this:
Search for the file by its TTH value to find another source for it.
Delete the file from your Download Queue and off the hard drive. Then re-add the file from the search window or userlist.
What is the anti-fragmentation feature?
When downloading, it creates a file of the expected target size with unspecified content. If the download fails, the file is truncated to the size DC++ thinks it has downloaded, and resume should work fine. If DC++ crashes, you'll lose the whole downloaded part + any resumed part as well, as there's no way to know how much valid data there is in the file.
Fragmentation occurs when several downloads are running at the same time, and small bits of data are written to different files continously - causing the data to be scattered around on different locations on the drive. Anti-fragmentation will reserve space on the harddrive, thus putting all the file's data in the same physical space on the harddrive.
Fragmented harddrives become slow, as the drive needs to jump around to collect the file's data. Run windows' defrag software to "fix" fragmented data.
How does auto-grant slots feature work?
There are 3 extra slots (apart from those you specified in settings) that will be used to upload files under 16kB and for uploading your filelist, no matter the size. Operators in the hub can download mini-files and filelists even if those 3 extra slots are full.
This is the reason that you can download some people's filelists, but when you try to download a different (larger) file, you will get the "No slots available" message.
Note This function does not exist in the regular DC client - which means you cannot get small files or the filelist from those users if you don't have a slot.
What's "All download slots taken" and "No slots available"?
No slots available
The user that you are downloading from is already uploading enough, you will need to wait until some of his uploads are finished. How long? There's really no way of knowing.
All download slots taken
You have set a limit in your settings, how many downloads you want to have running at the same time. This setting is found under the download tab in your DC++ settings.
Slow downloads speeds!
If you experience slow downloads, it could be for many reasons:
You need to optimize your operating system for your current connection speed. First close all Peer to Peer (P2P) applications . Next run the TweakTest on this site. Once you have optimized it, then run a Speed Test (best idea to select the site closest to your location). This will give you a good idea what your maximum download and upload speeds are. If you're getting within 10% of your connection speed, that's the best you can get! If you are having trouble with your broadband connection, and it relates to packet loss, excessive latency, or internet or ISP congestion, running the Line Quality Test may help find the cause ( requires logon, free signup).
The persons upload bandwidth who you are downloading from is maxed out. Don't pay attention to the speed listed in the connection type column, its completely subjective and often is not a true reflection on the persons connection type since they can set it. Find a person with fewer slots used, which should result in faster speeds.
The person who you are downloading from is using a bandwidth limiter. There are two types: client based and third-party program.
* Often the client based types have set download/upload speed ratios in place so its not completely unfair. (e.x. If the upload speed limit is set below 6 kB/s, then the client will restrict the client download speed to a 2:1 ratio). This varies from client to client and obviously not all support upload limiting. This type of speed limiting only restricts the uploading of files. It does not limit getting the user lists or searches.
* A common third-party program that people use for limiting speed is NetLimiter. This type of speed limiting is absolute; meaning it can/does limit the speed which you get/send filelists, userlists and searches. One can suspect a person is using a tool such as NetLimiter when you're downloads are under 1kB/s.
You are sharing the internet connection with others on your LAN and they are using up all the available bandwidth. Tell them to knock it off =)
QoS Packet Scheduler Bandwidth Limiting might be enabled on the operating system. Follow this guide on how to disable it on XP/Win2K3. Windows 9x/ME/2K does not natively come with QoS. QoS can also be enabled on your router (not by default though). Look through the manual on how to check if its enabled.
Your ISP may be limiting your P2P traffic via some method of packet shaping. This is very common at Universities and at the workplace. Call up the ISP and inquire if they do anything with P2P traffic. If the ISP does throttle you, then there is nothing that can be done to increase the speeds.
With asymmetrical connections (incoming data capacity is greater than outgoing, i.e. DSL, Cable, Satellite), uploading near your maximum will affect your downloading speed. For this, you can use the "Use small send buffer" under File -> Settings -> Advanced.
If the "Use small send buffer" still does not improve your download speed when you are uploading at the same time , then get a client with an upload limiter Check the list of client features for those which have one. Set the upload limit to 85% of your upload speed. (ex. you have a 256kbps upload. 256 kbps / 8 bytes = 32 kB/s . 32kB/s * 0.85 = 27.2kB/s. Set the upload limit to 27 kB/s).
Downloading a file at unrealistic speeds
When you download a file at incredible/unrealistic speeds for your connection, its very likely you have just got a fake file. One will notice this only if the DC++ option, Use safe and compressed transfers is enabled. This happens because the fake file is made up of repetitive characters, which DC++ recognizes and compresses for sending. Most of the time, these fake files present themselves in file formats such as: .avi, .bin, .iso. If you are still unsure if the file is fake, simply try to use it; if it does not work then there is even more assurance that it is.
If you happen to download one of these files, do the community a favor and alert the operators in the hub about the user and fake file(s).
What are magnet links?
A magnet link is an open URI-scheme and supporting practices/code for enabling seamless integration between websites and locally-running utilities, such as file-management tools or peer to peer clients.
Magnet links have been implemented in DC++ 0.4032 . With this version of DC++, it will register, by default, to handle any magnet: links you click on in web pages. If you click on one of these links, DC++ will pop up and ask you if you want to search the DC network (or hubs you're connected to, at least) for this hash.
You can create your own magnets in the search frame, file list window, and download queue by a new contextual menu choice - just right click on the file you want a magnet for, and select Copy magnet link to clipboard. Since magnet links are an open standard for all (peer to peer) applications, there are hash types in some magnets that DC++ cannot handle. It can only handle magnets that contain a tiger tree hash.
Submitted by GargoyleMT
DC++ Change Log Related Entries:
0.4032: Added bitzi.com lookup and magnet link copy (thanks garg), Added (limited support for) magnet link handling (thanks garg), Magnet handler included in installer (thanks garg & magnethandler author)
Is it possible to removing the ++ tag / make DC++ undetectable?
Yes. You can download the source, remove the <++ tag and recompile it. Alternatively, some individuals have done that already and put it online. Just remember that when an OP finds out you are faking (your icon will turn from green to blue when they get your filelist) you WILL get permanently banned from that hub.
As to making DC++ completely undetectable, I'd say it's rather difficult without disabling a lot of the available features such as different nicks on different hubs, bzip compression and other extensions that dc++ uses. So far, I haven't run across a hacked DC++ client that hasn't been detected. There are hub scripts and client applications that use various methods to determine your client type.
What is Share Faking?
:
This is where you falsely inflate your projected file size being shared on Direct Connect.
Basically, the “reasoning” behind doing this is the large and elite hubs require users to share in the range of 80+ GB to even enter their hub. Many people do not have the hard drive capacity to share that much. They feel that the 400 other hubs out there, that don't have these high requirements, are not good enough for them. So they fake their fileshare to enter these “better than average” hubs.
Here is what the creator of the sharefaking tool says about this:
first off, i dont think my share fakers are killing dc because there
are 100,000 other people who don't use my share faker. second, if you are
very smart when using your faker, you hardly get banned. lol i get banned
off oh 5 hubs out of the 400 i connect too when i need some thing off dc.
and this sharing 'idology', you are bullshitting when u say if every body
share faked and there would be no share to downloadin from, thats a lame statment,
this would be true if dc was smaller. but there are lot of people and not
every body will share fake.
If you do not have the hard drive capacity to join these top hubs, then you do not belong there. All the users have put in the money and time to have valid shares of these large sizes. Fakers destroy the DC community.
Fakers are easily caught by a simple share check. Those who resort to more clever methods to fakeshare with garbage files can also be easily caught.
What is Slot Locking?
This “freezes” the slots on a DC client so no one else can connect (because all slots are full). Plain and simple, this is a pure leech mentality.
This is simply caught for DC++ clients because it ALWAYS will allow a filelist upload (well most often, I wont go into details), regardless if slots are full. There is a version of DC++ out there that will allow only OPs to get the users filelist and lock the slots for normal users
What is Tag Faking?
A tag is the DC++ tag, i.e. <++ V:0.305,M:A,H:0/1/0,S:2 ( meaning of the <++ tag ) A faker can simply be defined as, having a false or misleading appearance; fraudulent. That being said, a tag faker is someone who either hides or fraudulently modifies their DC++ tag. OPs permban any user on sight who are doing this.