Status
Not open for further replies.

litewarez

Active Member
1,367
2008
1
0
Well iv'e started working on some tools to help me manage computers easier at work and heres my code so far, im showing you so that you can become better

What this script does is search local area networks for host-names filtered down by an id that is in each computer on our corporate network!

This is not completed but thought I would share

PHP:
/*use all System here*/
using System;
using System.Text.RegularExpressions;

/*
 * using System.Text;
 * using System.Collections.Generic;
 * using System.Linq;
*/

using System.Net;

namespace Serco.Main
{
    class Program
    {
        static void Main(string[] args)
        {
            show_main_menu(true);
            string option = show_main_menu();

            switch (option) 
            {
                case "1":
                    FindHostByAssetTag();
                break;
            }
        }

        static string show_main_menu(bool header = false)
        {
            if (header == true)
            {
                Console.Clear();
                Console.Write("Network Toolbox (V1) - *** ICT Team - Developed by ********\n\n");
                return "";
            }

            //Show the menu options
            Console.WriteLine("1) Find Host via Asset Tag");
            Console.WriteLine("To exit type 'exit' or 'x'");
            Console.WriteLine("\n\n");
            Console.Write("Please enter an option:");
            string o = Console.ReadLine().ToString();
            
            return o;
        }

        /*
         * methods for each function!
         */
        static void FindHostByAssetTag(string error = "")
        {
            show_main_menu(true);
            Console.WriteLine("Asset Tag Searcher\n");
            if (error != "") 
            {
                Console.WriteLine("Error: {0}\n",error);
            }
            Console.Write("Enter Asset Tag:");

            string assetTag = Console.ReadLine().ToString();
            Regex AssetMatch = new Regex("0-9{6}");
            if (AssetMatch.Match(assetTag).Success == false) 
            {
                FindHostByAssetTag("Asset tag failed validation, please use exactly six digits");
                return;
            }

            /*lests start the search*/
            string localH = Dns.GetHostName();
            //Console.WriteLine("Current Host:" + localH);
            Console.WriteLine("Searching...");

            /*
             *  DNS Searching Now
             */
            IPHostEntry localHostname = Dns.GetHostEntry(Dns.GetHostName());
            foreach (IPAddress ip in localHostname.AddressList)
            {
                IPHostEntry Address = Dns.GetHostEntry(ip);
                string current_host = Address.HostName.ToString();
                if (current_host.IndexOf(assetTag) > 0)
                {
                    Console.WriteLine("\t" + Address.HostName.ToString());
                }
//                Console.WriteLine(); //Brings back some hashes ??
                /*
                 * here i want to search all hosts on teh network and match the "assetTag" with the string, if theres a match i want to print out a ip,hostname,etc
                 */
            }
            Console.Read();
        }
    }
}
 
5 comments
Tips:
- FunctionNamesShouldLookLikeThis();
- Namespaces should follow this naming: CompanyOrAuthor.ApplicationName.Etc
- Don't use switch to check one value.
- Using String.Empty instead of "" saves memory.

Other than that good job :).
 
Thanks Hyperz, them notes are taken into consideration with gratitude :D.

Just an update to show that i am increasing my complexity by using the Directories and understanding how to declare variables and class/ method types.

PHP:
static void FindHostByAssetTag(string error = "")
        {
            show_main_menu(true);
            Console.WriteLine("Asset Tag Searcher\n");
            if (error != "") 
            {
                Console.WriteLine("Error: {0}\n",error);
            }
            Console.Write("Enter Asset Tag or * for all: ");

            string assetTag = Console.ReadLine().ToString();
            Regex AssetMatch = new Regex("[0-9]{6}|[*]{1}");
            if (AssetMatch.Match(assetTag).Success == false) 
            {
                FindHostByAssetTag("Asset tag failed validation, please use exactly six digits");
                return;
            }

            /*lests start the search*/
            string localH = Dns.GetHostName();
            //Console.WriteLine("Current Host:" + localH);
            Console.WriteLine("Searching...");

            /*
             *  DNS Searching Now
             */
            IPHostEntry localHostname = Dns.GetHostEntry(Dns.GetHostName());
            if (localHostname.AddressList.Length == 0) 
            {
                FindHostByAssetTag("unable to detect any hosts at all. make sure a connection is active");
                return;
            }
            int count = 0;
            Dictionary<string, IPAddress> storage = new Dictionary<string, IPAddress>();

            foreach (IPAddress ip in localHostname.AddressList)
            {
                IPHostEntry Address = Dns.GetHostEntry(ip);
                string current_host = Address.HostName.ToString();
                if (assetTag == "*" || current_host.IndexOf(assetTag) > 0)
                {
                    count++;
                    storage.Add(count.ToString(),ip);//Store as string
                    Console.WriteLine("("+count+")\t" + Address.HostName.ToString());
                }
            }
            if (count == 0) 
            {
                FindHostByAssetTag("Unable to find any hosts matching (" + assetTag + ")");
                return;
            }

            //Show the menu select menu for the selected asset tag
            Console.WriteLine("Please select an ID for options: ");
            string selected = Console.ReadLine();
            if (Int32.Parse(selected) > 0 && storage.ContainsKey(selected))
            {
                if (storage.ContainsKey(selected))
                {
                    show_main_menu(true);
                    Console.WriteLine("options for item {0}", selected);
                    string option = Console.ReadLine();
                }
            }
            else 
            {
                Console.WriteLine("item could not be found!");
                Console.Read();
            }
        }
 
Status
Not open for further replies.
Back
Top