IP_Whois.cs
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.IO;
using System.Threading;

// reads file data: ip_Addr\n etc...

namespace ConsoleApplication2
{
	/// 
	/// Summary description for Class1.
	/// 
	class Class1
	{
		public void Thread1()
		{
			String buf;
			int i, j;

			StreamReader srf = new StreamReader(new FileStream("log.txt", FileMode.Open, FileAccess.Read)); 
			//FileStream fs = new FileStream("whois.html", FileMode.Open, FileAccess.Write);
			StreamWriter sw = new StreamWriter(new FileStream("whois.html", FileMode.Create, FileAccess.Write));
			buf = srf.ReadLine();

			sw.Write("\r\n\r\nWHOIS List\r\n\r\n
\r\n");

			while(buf.Length > 0)
			{
				TcpClient tcpc = new TcpClient();
				try
				{
					tcpc.Connect("whois.arin.net", 43);
				}
				catch(SocketException ex)
				{
					Console.Write(ex.ToString());
				}

				String strDomain = buf + "\r\n";
				Byte[] arrDomain = Encoding.ASCII.GetBytes(strDomain.ToCharArray());
	  
				Stream s = tcpc.GetStream();
				s.Write(arrDomain, 0, strDomain.Length);

				StreamReader sr = new StreamReader(tcpc.GetStream(), Encoding.ASCII);
				string strLine = null;
	
				while (null != (strLine = sr.ReadLine()))
				{
					Console.Write(strLine);
					sw.WriteLine(strLine, 0, strLine.Length);
				}
				sr.Close();
				tcpc.Close();

				sw.Write("\r\n


\r\n"); Console.Write("\n"); Console.Write("***********************************"); Console.Write("\n"); // wait due to server connection limits Thread.Sleep(3000); buf = srf.ReadLine(); } sw.Write("\n
\n\n"); srf.Close(); sw.Close(); } /// /// The main entry point for the application. /// static void Main(string[] args) { Class1 c1 = new Class1(); Thread t1 = new Thread(new ThreadStart(c1.Thread1)); t1.Start(); } } }