• Welcome to TechPowerUp Forums, Guest! Please check out our forum guidelines for info related to our community.

Network Tools

I'm off to bed too. I will have to code an ICMPv6 class which will take some time. I then have to make it autonegotiate between v4 and v6. I'll work on it when I get up.

The following currently aren't IPv6 compatible:
-Whois
-Ping
-Trace Route
-Trace Route (Advanced)
-Intranet Scan
-DNS Record

Not 100% certain on DNS record. The others use that ICMPv4 code.


It times out because ICMPv4 is not compatible with ICMPv6. Basically, the receiving computer doesn't know what it is looking at so it just loops the sent data back. This is problematical because an ICMP Echo is supposed to recieve an Echo Reply. No Echo Reply = timeout.
 
No worries , will take it up when you have time.

On a side note, was just listening to the Rocky theme tune, so I think you can beat this lol
 
1. In the input text box. Separate multiple port numbers by commas. See the picture in the first post for an example. It assumes all ports use the "localhost" IP. Basically, it creates a TCP Listener on all the ports you specify. Once the Listener is good, it stops it and reports back. Theoretically, if the port is blocked, it should throw an exception when attempting to start the listener which is caught and handled.

By the way, the Port Scan is multithreaded so if you put in 80,8080,5050, it may or may not show the results in that order. It displays them in the order it completes them.

Ah, so it checks "open ports" or "port responses" on localhost?

I think the other way round is more useful... ie... test if a resolved IP is providing services on said ports. That way we can not only "ping" an IP address, we can see if it answers an :80, :23, :8080, :5080 service.

Clearly I know what is running on my PC; I want to test if my PC can reach services on the distant IP. Is the distant IP a server? Or at least... can i reach those server services.

Actually, both options make sense if possible. You enter the IP in the relevant 2nd input box, and the ports in the THIRD input box... which was greyed out.

(That's a bit of an amateur explaination... but hope it makes sense!)
 
Ah, so it checks "open ports" or "port responses" on localhost?

I think the other way round is more useful... ie... test if a resolved IP is providing services on said ports. That way we can not only "ping" an IP address, we can see if it answers an :80, :23, :8080, :5080 service.

Clearly I know what is running on my PC; I want to test if my PC can reach services on the distant IP. Is the distant IP a server? Or at least... can i reach those server services.

Actually, both options make sense if possible. You enter the IP in the relevant 2nd input box, and the ports in the THIRD input box... which was greyed out.

(That's a bit of an amateur explaination... but hope it makes sense!)
Is the Port Scan helpful as is or is it pointless (ehm, should it be removed)? I think I will add a "Remote Port Scan" option which accepts "domain: port list" and "ip: port list"

I'm not certain that ICMP packets work on any port but I'll try.


Edit: I think IPv6 is working across everything; however, it is pretty sickly on the Intranet Scan. Apparently with Microsoft's loopback service, every IP you send a packet to responds, albeit slowly. It basically is a bandage and not a permanent solution.


Edit 2: I did:

google.com:80,21;microsoft.com:21

Result:
Code:
Started the remote port scan...
    74.125.127.100:80  Good
    74.125.127.100:21  Good
    207.46.232.182:21  Good
Scan Complete (500 milliseconds)

Problem is, I don't think what port the ICMP is on matters. What matters is if the network responds to pings or not...

The only way to test if a port is open is to attempt to establish a connection to it using its specific protocol. For instance, FTP needs login credentials while HTTP needs a request. Every port is different.


I will upload 1.4 once I make sure everything is still good in IPv4...
 
Last edited:
Hmmm ... No matter what I try to do, Windows tells me the application has stopped working.

VS Debugger is throwing a SocketException
System.Net.Sockets.SocketException was unhandled
Message="An attempt was made to access a socket in a way forbidden by its access permissions"
Source="System"
ErrorCode=10013
NativeErrorCode=10013
StackTrace:
at System.Net.Sockets.Socket..ctor(AddressFamily addressFamily, SocketType socketType, ProtocolType protocolType)
at NetTool.Ping.Looper(Object host)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart(Object obj)
InnerException:

Probably something I'm doing wrong. :rolleyes:
 
10013 = PermissionDenied

Maybe try running as Administrator?


1.4 was just uploaded to the original post. See the bottom of that post for some of the major changes made.
 
1) Please override the address TextBox OnKeyPress method and make it so that when a return is hit it executes the start button code.

2) Trace Route to TPU just gives me 5 timeouts before thee Trace Complete message.
Tracing route to www.techpowerup.com [74.86.91.2]
over a maximum of 30 hops:
Timed out.
Timed out.
Timed out.
Timed out.
Timed out.
Trace Complete


Trace Route (Advanced) returns nothing for me.
Tracing route to www.techpowerup.com [74.86.91.2]
over a maximum of 30 hops...
Target (74.86.91.2) is unreachable.

Hostnames obtained. Results:
Hop Latency IP Address Hostname
More as I play with it.
Great tool Ford :toast:
 
Last edited:
1) Please override the address TextBox OnKeyPress method and make it so that when a return is hit it executes the start button code.
I forgot to do that. I'll make sure it is there for 1.5.


2) Trace Route to TPU just gives me 5 timeouts before thee Trace Complete message.



Trace Route (Advanced) returns nothing for me.

More as I play with it.
Great tool Ford :toast:
Try dropping the www. I noticed that some only work with www. and some work without it. It depends how the DNS is set up.
 
Just a quick note, I'm on a satellite connection and my pings look like this ...
Pinging www.techpowerup.com [74.86.91.2] with 32 bytes of data:
Reply from 74.86.91.2: bytes=32 time=465ms TTL=128
Reply from 74.86.91.2: bytes=32 time=480ms TTL=128
Reply from 74.86.91.2: bytes=32 time=485ms TTL=128
Reply from 74.86.91.2: bytes=32 time=480ms TTL=128
Ping statistics for 74.86.91.2:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 465ms, Maximum = 485ms, Average = 477ms

I don't know what you have the timeouts set for ...
 
All ping timeouts are 3 seconds.
 
Trace route still times out if I drop the "www".
 
It says "Target (74.86.91.2) is unreachable." on advanced. I'm guessing that address is either down or is not responding to ICMP requests. :confused:

I'm changing all ping timeouts to 500 ms and making it consistent application wide.
 
500 ms is a bit skinny for us poor satellite users. Maybe put something in where we can set the timeout ourselves?
 
Maybe consider putting in a horizontal scroll bar on the display window. The text does not wrap and gets cut off whn using the default size on app launch.
 
500 ms is a bit skinny for us poor satellite users. Maybe put something in where we can set the timeout ourselves?
I'm not entirely convinced that setting it has any impact. I'll leave it at 3 seconds then.

Edit: One of them was at 500 ms. I'll double check and make sure they are all using the new value...


Here is my trace routes of www.techpowerup.com:
Code:
Tracing route to www.techpowerup.com [74.86.91.2]
over a maximum of 30 hops:
  1   31 ms  74.44.40.1     
  2   31 ms  74.40.43.113   
  3   31 ms  74.40.3.237    
  4   31 ms  74.40.4.142    
  5   31 ms  206.223.119.12 
  6   31 ms  129.250.3.98   
  7   62 ms  129.250.3.17   
  8   78 ms  129.250.2.174  
  9   46 ms  157.238.224.70 
 10   46 ms  66.228.118.207 
 11   46 ms  66.228.118.182 
Trace Complete

Tracing route to www.techpowerup.com [74.86.91.2]
over a maximum of 30 hops...
Traced to 11 addresses.  Getting hostnames...
Hostnames obtained.  Results:
Hop Latency    IP Address        Hostname   
  1   15 ms  74.44.40.1       74-44-40-1.dr01.lmrs.ia.frontiernet.net
  2   62 ms  74.40.43.113     
  3   31 ms  74.40.3.237      ge-3-1-0--0.cr02.chcg.il.frontiernet.net
  4   46 ms  74.40.4.142      ge-2-0-0--0.br01.chcg.il.frontiernet.net
  5   46 ms  206.223.119.12   xe-0.equinix.chcgil09.us.bb.gin.ntt.net
  6   31 ms  129.250.3.98     ae-0.r21.chcgil09.us.bb.gin.ntt.net
  7   93 ms  129.250.3.17     as-1.r21.dllstx09.us.bb.gin.ntt.net
  8   62 ms  129.250.2.174    po-2.r02.dllstx09.us.bb.gin.ntt.net
  9   93 ms  157.238.224.70   te2-1.cer02.dal01.dallas-datacenter.com
 10   46 ms  66.228.118.207   po2.dar02.dal01.dallas-datacenter.com
 11   62 ms  66.228.118.182   po2.fcr02.dal01.dallas-datacenter.com

Maybe consider putting in a horizontal scroll bar on the display window. The text does not wrap and gets cut off whn using the default size on app launch.
Will do.
 
I still get nothing from trace route. I will look into it on my end.

When I do any of the "Whois" commands I get "no match" responses.
 
The trouble with whois is finding a source that has all the domain names. It is using whois.internic.net right now (which appears to be the fallback for any whois query).


Edit:
Whois (Domain) - Just a domain name (e.g. example.com).
Whois (Name Server) - An IP address or domain name (e.g. 192.16.0.192 or example.com).
Whois (Registrar) - A business name (e.g. Network Solutions).
 
Last edited:
I have a domain registered through Network Solutions (www.northfx.com) that returns no match also.
internic.net does work and returns a registrar of GoDaddy, and a whois server of whois.godaddy.com
 
how the hell did i miss this last week. good work.
 
Tracert in a cmd window works ...
Tracing route to www.techpowerup.com [74.86.91.2]
over a maximum of 30 hops:

1 1 ms <1 ms <1 ms 10.10.10.50
2 1369 ms 3630 ms 1421 ms 10.32.0.1
3 1379 ms 1510 ms 1473 ms 10.242.20.1
4 1429 ms 1420 ms 1417 ms 10.242.30.25
5 1517 ms 1526 ms 1567 ms 10.242.30.1
6 1472 ms 1326 ms 1469 ms 10.242.100.2
7 1475 ms 1413 ms 1423 ms 10.242.110.2
8 1519 ms 1477 ms 1415 ms 12.116.10.205
9 1935 ms 1514 ms 1524 ms cr2.st6wa.ip.att.net [12.122.146.202]
10 1431 ms 2716 ms 1677 ms cr2.dvmco.ip.att.net [12.122.1.77]
11 1523 ms 1557 ms 1475 ms cr2.dlstx.ip.att.net [12.122.31.89]
12 818 ms 1460 ms 1115 ms gar6.dlstx.ip.att.net [12.122.100.65]
13 1624 ms 1511 ms 1423 ms 12.90.228.14
14 826 ms 1108 ms 1423 ms border3.tge3-1-bbnet1.ext1.dal.pnap.net [216.52.191.22]
15 1465 ms 1614 ms 1612 ms te2-1.cer03.dal01.dallas-datacenter.com [216.52.189.30]
16 1569 ms 1575 ms 1476 ms po3.dar01.dal01.dallas-datacenter.com [66.228.118.209]
17 1559 ms 1576 ms 946 ms po1.fcr02.dal01.dallas-datacenter.com [66.228.118.178]
18 3185 ms 1480 ms 849 ms www1.techpowerup.com [74.86.91.2]

Trace complete.
 
post_thanks.gif


This little util is really coming along :D Great job

*****
Intranet scan gave me this:

Capture076.jpg
 
Tracert in a cmd window works ...
Heh, I bet it is that 500 ms rearing its head. I'll upload 1.4.1 soon which has it set to 3 sec...
 
Hitting return (when entering data) should automatically initiate the start button.
 
I have a domain registered through Network Solutions (www.northfx.com) that returns no match also.
internic.net does work and returns a registrar of GoDaddy, and a whois server of whois.godaddy.com
I tried:

Whois (Domain): northfx.com
Result:
Code:
Domain Name: NORTHFX.COM
Registrar: NETWORK SOLUTIONS, LLC.
Whois Server: whois.networksolutions.com
Referral URL: http://www.networksolutions.com
Name Server: NS1.RAQ-SERVER.NET
Name Server: NS2.RAQ-SERVER.NET
Status: clientTransferProhibited
Updated Date: 16-jan-2008
Creation Date: 29-mar-1997
Expiration Date: 30-mar-2013
I'll make it trim "www."


I need to add debugging info throughout...


Hitting return (when entering data) should automatically initiate the start button.
That is already implemented and will be released soon.
 
Back
Top