Jesus 'n Jim
A mainly PC (some Mac) site w/Software, Computer Repair Info, How-To's on Using Computers
Technical Support 1-360-521-2060 (my business line cell)

dupipfind (C++)



The purpose of dupipfind is to detect duplicate fixed IP's on the network. there may be other ways of doing this, but in general duplicate IP's causes network headaches I've found.

The tool is also useful for seeing who's on your network.

This tool can be replaced (for single IP addresses) with the following built-in OS command: nbtstat -a ipaddress

At least I think it will work. my first winsock code in a long time.

What it does it report the machine names of each IP (0-254 [255 is broadcast, so that's not allowed]) in a specified subnet, and also that IP's alternate IP's (the other NIC's installed).

MinGW compiled executables with sources [windows 32+64-bit]).

dupipfind for windows can be obtained as a single


right click on the download button and pick save target as(ff) or save link as (ie) or click on the button(chrome, safari)

lsm file.

Download Now (Versions 1.3, 6/1/2011)

07/18/2011  06:38 PM         4,595,919

%%%% HASHDEEP-1.0
%%%% size,md5,sha1,sha256,filename
## Invoked from: C:\prj\dupipfind
## C : \ >  hashdeep -c md5,sha1,sha256


It's a slow tool, takes up to 12sec/IPaddr*255IPaddrs=3060seconds/(60seconds/min)=51 mins. to execute.


like most of my tools, it's command-line, but it's very simple to use:

dupipfind 192.168.1


dupipfind (the .255 on the end means do 1 to 254)


dupipfind -start 100 -end 110 192.168.1

(it will strip off the .255 on the end if it finds 3 dots - 255 means broadcast but this program reinterprets that to mean do whole range of 1 to 254.)

since the output will probably be a minimum of 255 lines long, I suggest you redirect it to a file like so: dupipfind 192.168.1 > 192.168.1.txt

I have noticed that instead of a named ip address, a machine that is not logged on yet will produce simply the machine name.

This is intended to be an IT/IS tool.

dupipfind - find names of computers with duplicate IP addresses on a subnet.
usage: dupipfind [-[-]?] [/?] [-[-]h[elp]] [-[-]v[ersion]] [/version]
       dupipfind [[-]-s[tart] integer] [[-]-e[nd] integer] subnet [subnet ...]

-h or -? or /? or /h or /help or -help or --help gives this help and quits.
-v or -version or --version gives the version number and quits.
-s integer or -start integer optionally specifies the start range (default is 0)
-e integer or -end integer optionally specifies the end range (default is 254).
integer can be hexadecimal: start with 0x, 0X, decimal: plain or start with 0d,
0D, octal: start with 0, 0q, 0Q, 0o, 0O, binary: start with 0b, 0B.

example: dupipfind 192.168.1
example: dupipfind
example: dupipfind -start 0x1a -end 0b11001010 > results.txt

The last .255 will be stripped out if it finds 3 dots.
The program will test each ip on this subnet one by one from 0 to 254 (which wil
l be appended to your address), or a different range if you specify with the -st
art and -end parameters.
Do not use domain names or netbios names.  only IPV4 addresses supported.
If you have a fairly empty subnet, it will take a long time (12sec/IP address*25
5 IP's=3060 seconds) or 51 minutes.
dupipfind shows the machine names and alternate IP's of each IP address on the s

Program Copyright 2009 Jim Michaels and under the GPL3 license.
atoi64 library copyright 2007,2008,2009 Jim Michaels and under GPL3 license.



  • fixed number input library in 1.3

Future features (if I can handle it)

  • IPV6 addressing.


The dos version [at this time there is none] is compiled with DJ Delorie's djgpp (gcc for DOS). It can be obtained at

The windows version was compiled with mingw-w64. it is also compilable with Borland c++ 5.5.1, available at article (may include patches), free compiler (requires regisration).

The windows version was also compiled with MinGW 5.1.4 which is a GNU compiler set for windows. it has the peculiarity that it requires any use of __int64 to #include <basestd.h>, and it also doesn't allow 64-bit constants in the microsoft/borland style of appending i64 to the number. it requires you to use the gcc LL instead, however, printf does use %I64d rather than the normal gcc %lld. If you use %lld, your program will crash and do the DrWatson error report thing.

PHP is a programming language used for web page development and for applications and is available at

ArgoUML is a UML diagramming tool used for designing programs and is available at


It is under the GPL3 license.

Atoi64 library Copyright 2007 Jim Michaels This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see <>.

GPL3 license text available here.