<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=39881&amp;view=findpost&amp;p=258539</guid>
        <pubDate>Sat, 06 Dec 2003 06:08:52 +0000</pubDate>
        <title>Получение IP-адреса по доменному имени</title>
        <link>https://forum.sources.ru/index.php?showtopic=39881&amp;view=findpost&amp;p=258539</link>
        <description><![CDATA[Song: <!--c1--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b></b> </td></tr><tr><td id='CODE'><!--ec1-->uses winsock;<br><br><br>------- <br><br>function IPAddrToName&#40;IPAddr &#58; String&#41;&#58; String; <br>var <br>  SockAddrIn&#58; TSockAddrIn; <br>  HostEnt&#58; PHostEnt; <br>  WSAData&#58; TWSAData; <br>begin <br>  WSAStartup&#40;&#036;101, WSAData&#41;; <br>  SockAddrIn.sin_addr.s_addr&#58;= inet_addr&#40;PChar&#40;IPAddr&#41;&#41;; <br>  HostEnt&#58;= gethostbyaddr&#40;@SockAddrIn.sin_addr.S_addr, 4, AF_INET&#41;; <br>  if HostEnt&#60;&#62;nil then <br>  begin <br>    result&#58;=StrPas&#40;Hostent^.h_name&#41; <br>  end <br>  else <br>  begin <br>    result&#58;=&#39;&#39;; <br>  end; <br>end; <br><br>//Пример использования&#58;<br><br>procedure TForm1.Button1Click&#40;Sender&#58; TObject&#41;; <br>begin <br>Label1.Caption&#58;=IPAddrToName&#40;Edit1.Text&#41;;<br>end;<!--c2--></td></tr></table><div class='postcolor'><!--ec2--><br><br><span style='color:gray'><b>Добавлено в</b> <time class="tag-mergetime" datetime="2003-12-06T09:10:04+03:00">06.12.03, 06:10</time></span><br><b>Преобразуем доменное имя в IP адрес.</b><br><br>Автор: Lutfi Baran<br><br>Описывается функция, которая показывает, как вычислить IP адрес компьютера в интернете по его доменному имени.<br><br>Совместимость: Delphi 3.x (или выше)<br><br>Объявляем Winsock, для использования в функции <br>............ <br><br><!--c1--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b></b> </td></tr><tr><td id='CODE'><!--ec1-->function HostToIP&#40;Name&#58; string; var Ip&#58; string&#41;&#58; Boolean; <br>var <br> &nbsp;wsdata &#58; TWSAData; <br> &nbsp;hostName &#58; array &#91;0..255&#93; of char; <br> &nbsp;hostEnt &#58; PHostEnt; <br> &nbsp;addr &#58; PChar; <br>begin <br> &nbsp;WSAStartup &#40;&#036;0101, wsdata&#41;; <br> &nbsp;try <br> &nbsp; &nbsp;gethostname &#40;hostName, sizeof &#40;hostName&#41;&#41;; <br> &nbsp; &nbsp;StrPCopy&#40;hostName, Name&#41;; <br> &nbsp; &nbsp;hostEnt &#58;= gethostbyname &#40;hostName&#41;; <br> &nbsp; &nbsp;if Assigned &#40;hostEnt&#41; then <br> &nbsp; &nbsp; &nbsp;if Assigned &#40;hostEnt^.h_addr_list&#41; then begin <br> &nbsp; &nbsp; &nbsp; &nbsp;addr &#58;= hostEnt^.h_addr_list^; <br> &nbsp; &nbsp; &nbsp; &nbsp;if Assigned &#40;addr&#41; then begin <br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;IP &#58;= Format &#40;&#39;%d.%d.%d.%d&#39;, &#91;byte &#40;addr &#91;0&#93;&#41;, <br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;byte &#40;addr &#91;1&#93;&#41;, byte &#40;addr &#91;2&#93;&#41;, byte &#40;addr &#91;3&#93;&#41;&#93;&#41;; <br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Result &#58;= True; <br> &nbsp; &nbsp; &nbsp; &nbsp;end <br> &nbsp; &nbsp; &nbsp; &nbsp;else <br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Result &#58;= False; <br> &nbsp; &nbsp; &nbsp;end <br> &nbsp; &nbsp; &nbsp;else <br> &nbsp; &nbsp; &nbsp; &nbsp;Result &#58;= False <br> &nbsp; &nbsp;else begin <br> &nbsp; &nbsp; &nbsp;Result &#58;= False; <br> &nbsp; &nbsp;end; <br> &nbsp;finally <br> &nbsp; &nbsp;WSACleanup; <br> &nbsp;end <br>end;<!--c2--></td></tr></table><div class='postcolor'><!--ec2--><br><br>................................ <br><br>Вы можете разметстить на форме EditBox, Кнопку и Label и добавить к кнопке следующий обработчик события OnClick: <br><br><!--c1--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b></b> </td></tr><tr><td id='CODE'><!--ec1-->procedure TForm1.Button1Click&#40;Sender&#58; TObject&#41;; <br>var <br>IP&#58; string; <br>begin <br> &nbsp;if HostToIp&#40;Edit1.Text, IP&#41; then Label1.Caption &#58;= IP; <br>end;<!--c2--></td></tr></table><div class='postcolor'><!--ec2-->]]></description>
        <author>Song</author>
        <category>Интернет, сети, протоколы</category>
      </item>
	
      </channel>
      </rss>
	