DPortAck stands for Distributed Port Acknowledger. Its a C# command line tool that helps you check machine ports connectivity. You basically define a Xml file containing the information of the machines and ports to test and DPortAck test them for you.

DPortAck goal its to test infrastructure connectivity in an easy, basic and quick way. Depending on the complexity of your infrastructure its hard to test all connectivities, so with DPortAck this task can be more simple.

Lets say we have this xml file saved on c:\DPortAckSample.xml:
<?xml version="1.0" encoding="utf-8" ?>
<Tests xmlns="http://dportack.codeplex.com/">
  <Test name="Sample Test">
    <Machines>
      <Machine host="127.0.0.1">
        <Ports>
          <Port number="80"/>
          <Port number="8080"/>
          <Port number="8081"/>
          <Port number="123"/>
          <Port number="8080" protocol="Udp" socketType="Dgram"/>
        </Ports>
      </Machine>
    </Machines>
  </Test>
</Tests>
When you execute "DPortAck.exe c:\DPortAckSample.xml" (assuming your are at the directory DPortAck.exe is or have it on the %PATH% variable) you have the following output:

Sample Test (MaxTimeout: 5000) - 127.0.0.1 - Tcp.80... ok
Sample Test (MaxTimeout: 5000) - 127.0.0.1 - Tcp.8080... ##### FAIL #####
Sample Test (MaxTimeout: 5000) - 127.0.0.1 - Tcp.8081... ##### FAIL #####
Sample Test (MaxTimeout: 5000) - 127.0.0.1 - Tcp.123... ##### FAIL #####
Sample Test (MaxTimeout: 5000) - 127.0.0.1 - Udp.8080... ok

This means that the TCP Ports 80 and 8080 on my PC are open, while the other are not (or the connection could not be opened from another error).

You can create multiple tests, and also specify different timeout values for each test. Giving the folowwing Xml:
<?xml version="1.0" encoding="utf-8" ?>
<Tests xmlns="http://dportack.codeplex.com/">
  <Test name="Quick Test" timeout="1000">
    <Machines>
      <Machine host="127.0.0.1">
        <Ports>
          <Port number="80"/>
          <Port number="8080"/>
        </Ports>
      </Machine>
    </Machines>
  </Test>
  <Test name="Long Test" timeout="5000">
    <Machines>
      <Machine host="127.0.0.1">
        <Ports>
          <Port number="8081"/>
          <Port number="123"/>
          <Port number="8080" protocol="Udp" socketType="Dgram"/>
        </Ports>
      </Machine>
    </Machines>
  </Test>
</Tests>
The output will be:

Quick Test (MaxTimeout: 1000) - 127.0.0.1 - Tcp.80... ok
Quick Test (MaxTimeout: 1000) - 127.0.0.1 - Tcp.8080... ##### FAIL #####
Long Test (MaxTimeout: 5000) - 127.0.0.1 - Tcp.8081... ##### FAIL #####
Long Test (MaxTimeout: 5000) - 127.0.0.1 - Tcp.123... ##### FAIL #####
Long Test (MaxTimeout: 5000) - 127.0.0.1 - Udp.8080... ok

Last edited May 10, 2011 at 4:08 PM by FHeNuS, version 4