<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Internet IP ermitteln?]]></title><description><![CDATA[<p>Hallo,</p>
<p>habe mir aus der FAQ-WinAPI den Quelltext zum ermitteln der Internet-IP genommen und meinem Programm hinzugefügt.</p>
<p>--&gt; <a href="http://www.c-plusplus.net/forum/viewtopic.php?t=39386" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic.php?t=39386</a></p>
<p>Also habe die datei CGetIP.cpp und CGetIP.h meinem Projekt hinzugefügt und auch das #include &quot;CGetIP.h&quot; in der main.cpp.</p>
<p>Beim compilieren kommt nun folgende fehlermeldung:</p>
<p>bei Zeile: TCHAR *pszBuffer = (TCHAR*)calloc(MAX_LENGTH, sizeof(TCHAR));<br />
kommt diese Fehlermeldung---&gt; implicit declaration of function `int calloc(...)'</p>
<p>und bei Zeile: free(pszBuffer);<br />
diese---&gt; implicit declaration of function `int free(...)'</p>
<p>habe daraus dann das gemacht:</p>
<pre><code>TCHAR *pszBuffer;
RecieveFile(pszBuffer); 
CloseConnection(); 
RecievedFileToIP(pszBuffer, pszIP); 
//free(pszBuffer);
</code></pre>
<p>und nun startet auch das Programm.<br />
Kann man das so machen?<br />
Aber dennoch erreiche ich nicht mein Ziel die Internet-IP zu ermitteln.<br />
mein Aufruf in der main.cpp sieht so aus:</p>
<pre><code>char IP_Adresse[255];
CGetIP(IP_Adresse);
</code></pre>
<p>als Ergebnis erhalte ich dann: IP_Adresse = <a href="http://checkip.dyndns.org" rel="nofollow">checkip.dyndns.org</a><br />
Ist nun der Aufruf falsch oder liegt es an dem Fehler oben?</p>
<p>Vielen Dank für eure Hilfe</p>
<p>slower</p>
<p>PS: benutze DevC++ neuste Version</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/63832/internet-ip-ermitteln</link><generator>RSS for Node</generator><lastBuildDate>Tue, 07 Apr 2026 06:44:42 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/63832.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 05 Feb 2004 08:14:47 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Internet IP ermitteln? on Thu, 05 Feb 2004 08:41:17 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>habe mir aus der FAQ-WinAPI den Quelltext zum ermitteln der Internet-IP genommen und meinem Programm hinzugefügt.</p>
<p>--&gt; <a href="http://www.c-plusplus.net/forum/viewtopic.php?t=39386" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic.php?t=39386</a></p>
<p>Also habe die datei CGetIP.cpp und CGetIP.h meinem Projekt hinzugefügt und auch das #include &quot;CGetIP.h&quot; in der main.cpp.</p>
<p>Beim compilieren kommt nun folgende fehlermeldung:</p>
<p>bei Zeile: TCHAR *pszBuffer = (TCHAR*)calloc(MAX_LENGTH, sizeof(TCHAR));<br />
kommt diese Fehlermeldung---&gt; implicit declaration of function `int calloc(...)'</p>
<p>und bei Zeile: free(pszBuffer);<br />
diese---&gt; implicit declaration of function `int free(...)'</p>
<p>habe daraus dann das gemacht:</p>
<pre><code>TCHAR *pszBuffer;
RecieveFile(pszBuffer); 
CloseConnection(); 
RecievedFileToIP(pszBuffer, pszIP); 
//free(pszBuffer);
</code></pre>
<p>und nun startet auch das Programm.<br />
Kann man das so machen?<br />
Aber dennoch erreiche ich nicht mein Ziel die Internet-IP zu ermitteln.<br />
mein Aufruf in der main.cpp sieht so aus:</p>
<pre><code>char IP_Adresse[255];
CGetIP(IP_Adresse);
</code></pre>
<p>als Ergebnis erhalte ich dann: IP_Adresse = <a href="http://checkip.dyndns.org" rel="nofollow">checkip.dyndns.org</a><br />
Ist nun der Aufruf falsch oder liegt es an dem Fehler oben?</p>
<p>Vielen Dank für eure Hilfe</p>
<p>slower</p>
<p>PS: benutze DevC++ neuste Version</p>
]]></description><link>https://www.c-plusplus.net/forum/post/452220</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/452220</guid><dc:creator><![CDATA[slower]]></dc:creator><pubDate>Thu, 05 Feb 2004 08:41:17 GMT</pubDate></item><item><title><![CDATA[Reply to Internet IP ermitteln? on Thu, 05 Feb 2004 10:58:43 GMT]]></title><description><![CDATA[<p>Du hast das aber schon in einer cpp Datei drin, oder <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /><br />
Naja, bei dem Code ist eben sehr viel dabei, was du eigentlich gar nicht brauchst - da findest du hier im Forum evtl. auch noch einen kürzeren. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
Sitzt du hinter einem Router, oder gehst du direkt ins Internet?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/452336</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/452336</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Thu, 05 Feb 2004 10:58:43 GMT</pubDate></item><item><title><![CDATA[Reply to Internet IP ermitteln? on Thu, 05 Feb 2004 11:08:26 GMT]]></title><description><![CDATA[<p>ja klar, ist in einer cpp drin.</p>
<p>das ist das problem, ich sitz hinter einem router und genau da wäre dieser code der richtige.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/452342</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/452342</guid><dc:creator><![CDATA[slower]]></dc:creator><pubDate>Thu, 05 Feb 2004 11:08:26 GMT</pubDate></item><item><title><![CDATA[Reply to Internet IP ermitteln? on Thu, 05 Feb 2004 11:43:12 GMT]]></title><description><![CDATA[<p>Ich denke, dass du die Klasse falsch verwendest! Der Konstruktor erwartet keine Parameter - und dann musst du GetInternetIP direkt aufrufen.<br />
Deine Code-Veränderung solltest du wieder rückgängig machen - den Speicher musst du schon reservieren <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/452377</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/452377</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Thu, 05 Feb 2004 11:43:12 GMT</pubDate></item><item><title><![CDATA[Reply to Internet IP ermitteln? on Thu, 05 Feb 2004 11:48:20 GMT]]></title><description><![CDATA[<p>und wie muss der code aussehen damit er läuft oder liegts am devc++?</p>
<p>und wie sieht dann der aufruf von GetInternetIP aus?</p>
<p>thx</p>
]]></description><link>https://www.c-plusplus.net/forum/post/452385</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/452385</guid><dc:creator><![CDATA[slower]]></dc:creator><pubDate>Thu, 05 Feb 2004 11:48:20 GMT</pubDate></item><item><title><![CDATA[Reply to Internet IP ermitteln? on Thu, 05 Feb 2004 12:54:23 GMT]]></title><description><![CDATA[<p>Wie das mit DevC++ geht kann ich dir nicht sagen - du musst zumindest Ws2_32.lib und Wininet.lib linken. Ausgelesen habe ich das dann so:</p>
<pre><code class="language-cpp">char IP_Adresse[255];
CGetIP CIP;
CIP.GetInternetIP(IP_Adresse);
</code></pre>
<p>Allerdings wurde offenbar der Aufbau der Datei von DynDNS geändert - deswegen musst du in CGetIP::RecievedFileToIP mit strchr nicht nach \n, sondern nach &lt; suchen. Außerdem würde ich das ganze einfach in eine normale Funktion packen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/452438</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/452438</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Thu, 05 Feb 2004 12:54:23 GMT</pubDate></item><item><title><![CDATA[Reply to Internet IP ermitteln? on Thu, 05 Feb 2004 13:29:58 GMT]]></title><description><![CDATA[<p>ok thx, mit diesem aufruf gehts</p>
<p>aber die speicherreservierung hab ich nicht hinbekommen, ist zwar nicht korrekt wie es dort oben steht aber es funktioniert.</p>
<p>vielleicht hat ja noch jemand eine idee warum die speicherreservierung nicht geht.</p>
<p>aber die ip kann ich jetzt bestimmen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/452469</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/452469</guid><dc:creator><![CDATA[slower]]></dc:creator><pubDate>Thu, 05 Feb 2004 13:29:58 GMT</pubDate></item><item><title><![CDATA[Reply to Internet IP ermitteln? on Thu, 05 Feb 2004 13:52:02 GMT]]></title><description><![CDATA[<p>Was für eine Speicherreservierung - wie sieht die aus <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Ich hab den Code jetzt mal in eine Funktion gepackt (ist sicher noch der ein oder andere Fehler drinnen, da ich nicht oft in C/C++ programmiere):</p>
<pre><code class="language-cpp">bool GetIP(char *ip)
{
	bool ret_val = false;

	WSADATA m_wsaData;
	WSAStartup(MAKEWORD(1, 1), &amp;m_wsaData); 

	if(HINTERNET m_hINet = InternetOpen(&quot;InetURL/1.0&quot;, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0))
	{
		if(HINTERNET m_hConnection = InternetConnect(m_hINet, &quot;checkip.dyndns.org&quot;, 80, 0, 0, INTERNET_SERVICE_HTTP, NULL, 0))
		{
			if(HINTERNET m_hData = HttpOpenRequest(m_hConnection, &quot;GET&quot;, 0, 0, 0, 0, INTERNET_FLAG_KEEP_CONNECTION, 0))
			{
				HttpSendRequest(m_hData, 0, 0, 0, 0);

				char szBuffer[1024] = {0};
				DWORD dwRead;
				InternetReadFile(m_hData, szBuffer, 1024, &amp;dwRead);

				if(dwRead)
				{
					char szAddress[] = &quot;Address: &quot;; 
					char *p;
					if(p = strstr(szBuffer, szAddress))
					{
						p += lstrlen(szAddress); 
						*strchr(p, '&lt;') = 0;
						if(ip) lstrcpy(ip,p);
						ret_val = true;
					}
				}
				InternetCloseHandle(m_hData);
			}
			InternetCloseHandle(m_hConnection);
		} 
		InternetCloseHandle(m_hINet);
	}

	WSACleanup();

	return ret_val;
}

// [...]
char ip[16];
if(GetIP(ip)) MessageBox(hwnd,ip,&quot;&quot;,0);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/452488</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/452488</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Thu, 05 Feb 2004 13:52:02 GMT</pubDate></item><item><title><![CDATA[Reply to Internet IP ermitteln? on Thu, 05 Feb 2004 14:05:07 GMT]]></title><description><![CDATA[<p>vielen dank für die mühe</p>
<p>jetzt gehts perfekt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/452503</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/452503</guid><dc:creator><![CDATA[slower]]></dc:creator><pubDate>Thu, 05 Feb 2004 14:05:07 GMT</pubDate></item></channel></rss>