Dota 2 SteamWebAPI C# .NET

Hello dear friends, since my first post on Reddit I have learned a lot!!! My code for the Dota 2 tool is now on github and I wanted to share some of the progress I have made since I have uploaded it there. The tool now supports these features:

  • GetMatchHistory
    • This provides the latest 100 matches with a lot of the information parsed and reformatted to make sense
  • GetHeroes
    • This method grabs the latest heroes
  • GetMatchDetails [WIP]
    • This method grabs an individual match detail including player information as well as build details

Here is a bit of the output for GetMatchDetails

and here is  a sample output of GetMatchHistory:

As of now, I am only storing this data in memory but once I complete most of the these methods, I will move onto the data store phase. Currently I am leaning towards Microsoft SQL but that might not be the best approach for a long term solution. My end goal would be to keep storing data and allowing our users to use this as a database…similar to DotaBuff but hoping I could keep it free.

Stay tuned for more guides in this series!

You can find the guides here:

If you wish to contribute or see what the code looks like, check out my project on GitHub

Dota 2 .Net C# Tool pt2

Welcome back! Today I will go over some code on how to get match details and also how to cleanup some of the text that we have. Assuming that you have been following along with the previous post, I will be using those classes and code in this part as well.

Let us first start by getting the latest matches, this will allow us to set the foundation for a later time when we want to query for a match in particular. Start by creating a class that will hold our match details

(classes were generated using json2csharp:

Now that we have our class created, lets get a few other methods in place which are used at a later time.

Since heroes are being added at certain times of the year, I wanted to have a somewhat generic method to pull up names based off of there index number. Thsi is my way of doing just that, this method expects a list of heroes (see part 1 of this tutorial) and then it maps the hero found in a match to one in the list.

And here is the method to get the latest 500 matches

And here are some helper methods

Once you have all of these things in place, usage is:

That is it for part 2 of this guide in this series, next step for me is to go back and do a bunch of code cleanup before I start publishing more content.

ps. I wanted to give you guys some background about me, I am a engineer by trade and I work primarily in infrastructure management. All of my coding experience is self taught, I wish I could have gone to school for this because I feel like it might be my calling but I understand that I have a lot to learn. So with that being said, please take the advice/tips that are given here with a grain of salt and do some of your own research. One day I do hope to be a master in programming but even a master fails many many times. My goal is to work together with the people of the internet and create something beautiful out of this project but I understand that it will take time to get there. Good luck with the coding guys and drop by soon for the next iteration in this series!


TCP Port Scanner/Query v1.0

I wrote this tool up for the technicians that I work with, they needed a quick way to perform port testing and using command line tools was too “advanced” :-p

Usage is very simple, put in hostname/ip and port number and hit go

Port Query GUI
TCP port scanner


  • TCP port scanning
  • Threaded to prevent application freezing during blocking calls


  • Finish code for UDP port scanning, this will be done by starting a listener on local machine and wait for response from remote endpoint. UDP is a stateless protocol which makes it a little bit trickier to detect when a port is actually in a open state
  • Add the following protocols
    • ICMP
    • GRE