نقل قول: ساختن یک Whois Engine
سلام...این پست خیلی قدیمی هست مجبورم که دوباره بیارمش بالا.... این لینک برای کد سی شارپ دیگه کار نمیکنه....اگه کسی کد سی شارپ جستجوی دامنه را داره لطفا بزاره برای دانلود...ممنونم
نقل قول: ساختن یک Whois Engine
mab designer ساختش کاری نداره!
یه سوکت TCP بزن به پورت 43 از سرور whois مورد نظرت.
مثالا برای ir با whois.nic.ir تعامل داشته باش و برای com,net و بقیه دامنه ها هم که چیزی که زیاده whois سرور.
telnet whois.nic.ir 43 رو یه تست بزن میگیری چی میگم.
موفق باشید
نقل قول: ساختن یک Whois Engine
سلام به همه دوستان عزیز
شما برای شروع ابتدا باید آدرس سرورهای ارائه دهنده دامنه ها را بدانید که چند نمونه از آن در مثال زیر بیان شده است.
شما برای این مثال باید کد HTML زیر را در Web Page خود قرار دهید :
<asp:textbox id="TxtDomainName" runat="server"></asp:textbox><asp:dropdownlist id="DDLstSuffix" runat="server">
<asp:listitem selected="True" value=".COM">.com</asp:listitem>
<asp:listitem value=".NET">.net</asp:listitem>
<asp:listitem value=".EDU">.edu</asp:listitem>
<asp:listitem value=".BIZ">.biz</asp:listitem>
<asp:listitem value=".ORG">.org</asp:listitem>
<asp:listitem value=".INFO">.info</asp:listitem>
<asp:listitem value=".IR">.ir</asp:listitem>
<asp:listitem value=".NET.IR">.net.ir</asp:listitem>
<asp:listitem value=".CO.IR">.co.ir</asp:listitem>
<asp:listitem value=".ID.IR">.id.ir</asp:listitem>
</asp:dropdownlist>
<asp:button id="btnWhois" onclick="Whois_Click" runat="server" text="Whois" width="58px"></asp:button><br />
<br />
<asp:label id="SearchRes" runat="server" font-names="tahoma" font-size="11pt"></asp:label>
سپس کد زیر را به صفحه کد Web Page خود اضافه کنید .
string StrSvr, StrDomain, Resp;
NetworkStream TcpStr;
StreamReader TcpStrRdr;
protected void Whois_Click(object sender, EventArgs e)
{
if (DDLstSuffix.SelectedItem.Value == ".COM" || DDLstSuffix.SelectedItem.Value == ".NET" || DDLstSuffix.SelectedItem.Value == ".EDU")
{
StrSvr = "whois.internic.net";
StrDomain = TxtDomainName.Text.Trim() + DDLstSuffix.SelectedItem.Value + "\r\n";
}
else if (DDLstSuffix.SelectedItem.Value == ".ORG")
{
StrSvr = "whois.publicinterestregistry.net";
StrDomain = TxtDomainName.Text.Trim() + DDLstSuffix.SelectedItem.Value + "\r\n";
}
else if (DDLstSuffix.SelectedItem.Value == ".BIZ")
{
StrSvr = "whois.neulevel.biz";
StrDomain = TxtDomainName.Text.Trim() + DDLstSuffix.SelectedItem.Value + "\r\n";
}
else if (DDLstSuffix.SelectedItem.Value == ".INFO")
{
StrSvr = "whois.afilias.info";
StrDomain = TxtDomainName.Text.Trim() + DDLstSuffix.SelectedItem.Value + "\r\n";
}
else if ((DDLstSuffix.SelectedItem.Value == ".IR") || (DDLstSuffix.SelectedItem.Value == ".CO.IR") || (DDLstSuffix.SelectedItem.Value == ".NET.IR") || (DDLstSuffix.SelectedItem.Value == ".ID.IR"))
{
StrSvr = "whois.nic.ir";
StrDomain = TxtDomainName.Text.Trim() + DDLstSuffix.SelectedItem.Value + "\r\n";
}
if (!string.IsNullOrEmpty(StrSvr) && !string.IsNullOrEmpty(StrDomain))
{
Connect();
}
}
protected void Connect()
{
byte[] ArrDomain;
TcpClient TcpClt = new TcpClient();
TcpClt.Connect(StrSvr, 43);
ArrDomain = Encoding.ASCII.GetBytes(StrDomain);
TcpStr = TcpClt.GetStream();
TcpStr.Write(ArrDomain, 0, StrDomain.Length);
TcpStrRdr = new StreamReader(TcpClt.GetStream(), Encoding.ASCII);
Resp = Regex.Replace(TcpStrRdr.ReadToEnd(),"\n","");
Resp = Resp.ToLower();
if (Regex.IsMatch(Resp, "no match") || Regex.IsMatch(Resp, "not found") || Regex.IsMatch(Resp, "no entries found"))
{
SearchRes.ForeColor = System.Drawing.Color.Green;
SearchRes.Text = " دامنه مورد نظر آزاد مي باشد ";
}
else
{
SearchRes.ForeColor = System.Drawing.Color.Red;
SearchRes.Text = " دامنه مورد نظر شما قبلاً ثبت شده است ";
}
TcpClt.Close();
}
شما برای اجرای این کد نیاز به NameSpace های زیر دارید که باید آنها را به صفحه کد بالا اضافه کنید :
System.IO;
System.Net.Sockets;
System.Text;
System.Text.RegularExpressions;
و در آخر صفحه را Run کرده و از آن لذت ببرید .
منبع : ازیکی از سایتها ( یادم نیست ) و با کمی دخل و تصرف
نقل قول: ساختن یک Whois Engine
میتونید از وب سرویس زیر برای این کار استفاده کنید :
Http://faradade.com/webservices/whois.asmx
موفق باشید
نقل قول: ساختن یک Whois Engine
نقل قول:
نوشته شده توسط
raravaice
mab designer ساختش کاری نداره!
یه سوکت TCP بزن به پورت 43 از سرور whois مورد نظرت.
مثالا برای ir با whois.nic.ir تعامل داشته باش و برای com,net و بقیه دامنه ها هم که چیزی که زیاده whois سرور.
telnet whois.nic.ir 43 رو یه تست بزن میگیری چی میگم.
موفق باشید
ممنون یکم باهاش ور فتم درست شد.... دستت درد نکنه... حالا چی کار کنم که اگه دامین وجود داشت اطلاعاتشو بریزه بیرون؟؟؟؟
نقل قول: ساختن یک Whois Engine
نقل قول:
نوشته شده توسط
nazaninam
This Page Cann't Found
نقل قول: ساختن یک Whois Engine
سلام
والا این وب سرویس های شرکت فراداده عشقی کار می کنه . .یه روز کار می کنه یه روز کار نمی کنه . .
دوستان کسی هست Whois نوشته باشه گه از نتایج جستجوی یک سایت بخونه . .
با تشکر
نقل قول: ساختن یک Whois Engine
نقل قول:
نوشته شده توسط
mostafa_sgh
سلام به همه دوستان عزیز
شما برای شروع ابتدا باید آدرس سرورهای ارائه دهنده دامنه ها را بدانید که چند نمونه از آن در مثال زیر بیان شده است.
شما برای این مثال باید کد HTML زیر را در Web Page خود قرار دهید :
<asp:textbox id="TxtDomainName" runat="server"></asp:textbox><asp:dropdownlist id="DDLstSuffix" runat="server">
<asp:listitem selected="True" value=".COM">.com</asp:listitem>
<asp:listitem value=".NET">.net</asp:listitem>
<asp:listitem value=".EDU">.edu</asp:listitem>
<asp:listitem value=".BIZ">.biz</asp:listitem>
<asp:listitem value=".ORG">.org</asp:listitem>
<asp:listitem value=".INFO">.info</asp:listitem>
<asp:listitem value=".IR">.ir</asp:listitem>
<asp:listitem value=".NET.IR">.net.ir</asp:listitem>
<asp:listitem value=".CO.IR">.co.ir</asp:listitem>
<asp:listitem value=".ID.IR">.id.ir</asp:listitem>
</asp:dropdownlist>
<asp:button id="btnWhois" onclick="Whois_Click" runat="server" text="Whois" width="58px"></asp:button><br />
<br />
<asp:label id="SearchRes" runat="server" font-names="tahoma" font-size="11pt"></asp:label>
سپس کد زیر را به صفحه کد Web Page خود اضافه کنید .
string StrSvr, StrDomain, Resp;
NetworkStream TcpStr;
StreamReader TcpStrRdr;
protected void Whois_Click(object sender, EventArgs e)
{
if (DDLstSuffix.SelectedItem.Value == ".COM" || DDLstSuffix.SelectedItem.Value == ".NET" || DDLstSuffix.SelectedItem.Value == ".EDU")
{
StrSvr = "whois.internic.net";
StrDomain = TxtDomainName.Text.Trim() + DDLstSuffix.SelectedItem.Value + "\r\n";
}
else if (DDLstSuffix.SelectedItem.Value == ".ORG")
{
StrSvr = "whois.publicinterestregistry.net";
StrDomain = TxtDomainName.Text.Trim() + DDLstSuffix.SelectedItem.Value + "\r\n";
}
else if (DDLstSuffix.SelectedItem.Value == ".BIZ")
{
StrSvr = "whois.neulevel.biz";
StrDomain = TxtDomainName.Text.Trim() + DDLstSuffix.SelectedItem.Value + "\r\n";
}
else if (DDLstSuffix.SelectedItem.Value == ".INFO")
{
StrSvr = "whois.afilias.info";
StrDomain = TxtDomainName.Text.Trim() + DDLstSuffix.SelectedItem.Value + "\r\n";
}
else if ((DDLstSuffix.SelectedItem.Value == ".IR") || (DDLstSuffix.SelectedItem.Value == ".CO.IR") || (DDLstSuffix.SelectedItem.Value == ".NET.IR") || (DDLstSuffix.SelectedItem.Value == ".ID.IR"))
{
StrSvr = "whois.nic.ir";
StrDomain = TxtDomainName.Text.Trim() + DDLstSuffix.SelectedItem.Value + "\r\n";
}
if (!string.IsNullOrEmpty(StrSvr) && !string.IsNullOrEmpty(StrDomain))
{
Connect();
}
}
protected void Connect()
{
byte[] ArrDomain;
TcpClient TcpClt = new TcpClient();
TcpClt.Connect(StrSvr, 43);
ArrDomain = Encoding.ASCII.GetBytes(StrDomain);
TcpStr = TcpClt.GetStream();
TcpStr.Write(ArrDomain, 0, StrDomain.Length);
TcpStrRdr = new StreamReader(TcpClt.GetStream(), Encoding.ASCII);
Resp = Regex.Replace(TcpStrRdr.ReadToEnd(),"\n","");
Resp = Resp.ToLower();
if (Regex.IsMatch(Resp, "no match") || Regex.IsMatch(Resp, "not found") || Regex.IsMatch(Resp, "no entries found"))
{
SearchRes.ForeColor = System.Drawing.Color.Green;
SearchRes.Text = " دامنه مورد نظر آزاد مي باشد ";
}
else
{
SearchRes.ForeColor = System.Drawing.Color.Red;
SearchRes.Text = " دامنه مورد نظر شما قبلاً ثبت شده است ";
}
TcpClt.Close();
}
شما برای اجرای این کد نیاز به NameSpace های زیر دارید که باید آنها را به صفحه کد بالا اضافه کنید :
System.IO;
System.Net.Sockets;
System.Text;
System.Text.RegularExpressions;
و در آخر صفحه را Run کرده و از آن لذت ببرید .
منبع : ازیکی از سایتها ( یادم نیست ) و با کمی دخل و تصرف
سلام
دوست عزیز من با این دستور رفتم جلو متاسفانه این error رو..
No such host is known
تو این خط
Line 64: TcpClt.Connect(StrSvr, 43);
میده..
لطفا راهنمایم کنید..
ممنون..
نقل قول: ساختن یک Whois Engine
سلام دوستان. ممنون از زحماتتون.
من با یه جای این کد مشکل دارم. من دارم اینو به VB تبدیل میکنم فقط نمی دونم به جای خط زیر چی بنویسم :
Resp = Regex.Replace(TcpStrRdr.ReadToEnd(),"\n","");
اون \n چیه و چکار میکنه؟
یا اینجاها :
StrDomain = TxtDomainName.Text.Trim() + DDLstSuffix.SelectedItem.Value + "\r\n";
در اینجا \n و \r اومده.
و اینکه آیا سرورها در جواب همین چند پاسخ رو برمیگردونن :
not found
no entries found
no match
---- در ضمن اینرو بگم که کد گذاشته شده توسط دوست خوبم mostafa_sgh به زبان #C به درستی کار میکنه:تشویق:
بازم ممنون
نقل قول: ساختن یک Whois Engine
و یه چیز دیگه دوستان
من دامین tk رو هم اضاف کردم و سرور ادرس رو هم براش گذاشتم (whois.nic.tk) ولی موقع سرچ واسه این دامین خطای زیر رو میده
A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond 195.20.32.82:43
نقل قول: ساختن یک Whois Engine
@mehdi-ghafari
/n یعنی سطر بعد
Resp = Regex.Replace(TcpStrRdr.ReadToEnd(),"\n","");
اینم میگه هرجا رفته بود سطر بعد بیارش کنار خط قبلی
نقل قول: ساختن یک Whois Engine
نقل قول:
نوشته شده توسط
mostafa_sgh
سلام به همه دوستان عزیز
شما برای شروع ابتدا باید آدرس سرورهای ارائه دهنده دامنه ها را بدانید که چند نمونه از آن در مثال زیر بیان شده است.
شما برای این مثال باید کد HTML زیر را در Web Page خود قرار دهید :
<asp:textbox id="TxtDomainName" runat="server"></asp:textbox><asp:dropdownlist id="DDLstSuffix" runat="server">
<asp:listitem selected="True" value=".COM">.com</asp:listitem>
<asp:listitem value=".NET">.net</asp:listitem>
<asp:listitem value=".EDU">.edu</asp:listitem>
<asp:listitem value=".BIZ">.biz</asp:listitem>
<asp:listitem value=".ORG">.org</asp:listitem>
<asp:listitem value=".INFO">.info</asp:listitem>
<asp:listitem value=".IR">.ir</asp:listitem>
<asp:listitem value=".NET.IR">.net.ir</asp:listitem>
<asp:listitem value=".CO.IR">.co.ir</asp:listitem>
<asp:listitem value=".ID.IR">.id.ir</asp:listitem>
</asp:dropdownlist>
<asp:button id="btnWhois" onclick="Whois_Click" runat="server" text="Whois" width="58px"></asp:button><br />
<br />
<asp:label id="SearchRes" runat="server" font-names="tahoma" font-size="11pt"></asp:label>
سپس کد زیر را به صفحه کد Web Page خود اضافه کنید .
string StrSvr, StrDomain, Resp;
NetworkStream TcpStr;
StreamReader TcpStrRdr;
protected void Whois_Click(object sender, EventArgs e)
{
if (DDLstSuffix.SelectedItem.Value == ".COM" || DDLstSuffix.SelectedItem.Value == ".NET" || DDLstSuffix.SelectedItem.Value == ".EDU")
{
StrSvr = "whois.internic.net";
StrDomain = TxtDomainName.Text.Trim() + DDLstSuffix.SelectedItem.Value + "\r\n";
}
else if (DDLstSuffix.SelectedItem.Value == ".ORG")
{
StrSvr = "whois.publicinterestregistry.net";
StrDomain = TxtDomainName.Text.Trim() + DDLstSuffix.SelectedItem.Value + "\r\n";
}
else if (DDLstSuffix.SelectedItem.Value == ".BIZ")
{
StrSvr = "whois.neulevel.biz";
StrDomain = TxtDomainName.Text.Trim() + DDLstSuffix.SelectedItem.Value + "\r\n";
}
else if (DDLstSuffix.SelectedItem.Value == ".INFO")
{
StrSvr = "whois.afilias.info";
StrDomain = TxtDomainName.Text.Trim() + DDLstSuffix.SelectedItem.Value + "\r\n";
}
else if ((DDLstSuffix.SelectedItem.Value == ".IR") || (DDLstSuffix.SelectedItem.Value == ".CO.IR") || (DDLstSuffix.SelectedItem.Value == ".NET.IR") || (DDLstSuffix.SelectedItem.Value == ".ID.IR"))
{
StrSvr = "whois.nic.ir";
StrDomain = TxtDomainName.Text.Trim() + DDLstSuffix.SelectedItem.Value + "\r\n";
}
if (!string.IsNullOrEmpty(StrSvr) && !string.IsNullOrEmpty(StrDomain))
{
Connect();
}
}
protected void Connect()
{
byte[] ArrDomain;
TcpClient TcpClt = new TcpClient();
TcpClt.Connect(StrSvr, 43);
ArrDomain = Encoding.ASCII.GetBytes(StrDomain);
TcpStr = TcpClt.GetStream();
TcpStr.Write(ArrDomain, 0, StrDomain.Length);
TcpStrRdr = new StreamReader(TcpClt.GetStream(), Encoding.ASCII);
Resp = Regex.Replace(TcpStrRdr.ReadToEnd(),"\n","");
Resp = Resp.ToLower();
if (Regex.IsMatch(Resp, "no match") || Regex.IsMatch(Resp, "not found") || Regex.IsMatch(Resp, "no entries found"))
{
SearchRes.ForeColor = System.Drawing.Color.Green;
SearchRes.Text = " دامنه مورد نظر آزاد مي باشد ";
}
else
{
SearchRes.ForeColor = System.Drawing.Color.Red;
SearchRes.Text = " دامنه مورد نظر شما قبلاً ثبت شده است ";
}
TcpClt.Close();
}
شما برای اجرای این کد نیاز به NameSpace های زیر دارید که باید آنها را به صفحه کد بالا اضافه کنید :
System.IO;
System.Net.Sockets;
System.Text;
System.Text.RegularExpressions;
و در آخر صفحه را Run کرده و از آن لذت ببرید .
منبع : ازیکی از سایتها ( یادم نیست ) و با کمی دخل و تصرف
سلام،
من از این کد جواب گرفتم، تو یه هاست هم آپلود کردم سایتم رو و آنلاین هم جواب گرفتم.
میخواستم ببینم که اگر بخوام اطلاعات کاملتری، مثل این که مشخصات دارنده دامین و کلاینت ثبت کننده دامین رو برام بیاره از چه کدی باید استفاده کنم.
ممنون.