<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>DHCP Server for Windows &#187; uwe</title>
	<atom:link href="http://www.dhcpserver.de/cms/author/uwe/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.dhcpserver.de/cms</link>
	<description></description>
	<lastBuildDate>Fri, 30 Jan 2026 05:36:21 +0000</lastBuildDate>
	<language>en-US</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.0.38</generator>
	<item>
		<title>V2.10.5</title>
		<link>http://www.dhcpserver.de/cms/release_notes/v2-10-5/</link>
		<comments>http://www.dhcpserver.de/cms/release_notes/v2-10-5/#comments</comments>
		<pubDate>Fri, 30 Jan 2026 05:36:21 +0000</pubDate>
		<dc:creator><![CDATA[uwe]]></dc:creator>
				<category><![CDATA[release-note]]></category>

		<guid isPermaLink="false">http://www.dhcpserver.de/cms/?p=921</guid>
		<description><![CDATA[V2.10.5.0 released 30/1/2026. All versions update for Windows 32-Bit, Windows 64-Bit, Raspberry 32-bit and Raspberry 64-bit. This release includes bug fixes with respect to pxeboot features. It effects the TFTP server function and some special options such as OPTIONHEX.]]></description>
				<content:encoded><![CDATA[<p>V2.10.5.0 released 30/1/2026. All versions update for Windows 32-Bit, Windows 64-Bit, Raspberry 32-bit and Raspberry 64-bit. This release includes bug fixes with respect to pxeboot features. It effects the TFTP server function and some special options such as OPTIONHEX.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dhcpserver.de/cms/release_notes/v2-10-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>V2.10.4</title>
		<link>http://www.dhcpserver.de/cms/release_notes/v2-10-4/</link>
		<comments>http://www.dhcpserver.de/cms/release_notes/v2-10-4/#comments</comments>
		<pubDate>Sun, 21 Dec 2025 06:58:34 +0000</pubDate>
		<dc:creator><![CDATA[uwe]]></dc:creator>
				<category><![CDATA[release-note]]></category>

		<guid isPermaLink="false">http://www.dhcpserver.de/cms/?p=918</guid>
		<description><![CDATA[V2.10.4.0 released 21/12/2025. All versions update for Windows 32-Bit, Windows 64-Bit, Raspberry 32-bit and Raspberry 64-bit. This release includes the following bug fixes: NAK message includes service id and HTTP head with correct content-length.]]></description>
				<content:encoded><![CDATA[<p>V2.10.4.0 released 21/12/2025. All versions update for Windows 32-Bit, Windows 64-Bit, Raspberry 32-bit and Raspberry 64-bit. This release includes the following bug fixes: NAK message includes service id and HTTP head with correct content-length.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dhcpserver.de/cms/release_notes/v2-10-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>V2.10.3</title>
		<link>http://www.dhcpserver.de/cms/release_notes/v2-10-3/</link>
		<comments>http://www.dhcpserver.de/cms/release_notes/v2-10-3/#comments</comments>
		<pubDate>Tue, 29 Jul 2025 07:44:55 +0000</pubDate>
		<dc:creator><![CDATA[uwe]]></dc:creator>
				<category><![CDATA[release-note]]></category>

		<guid isPermaLink="false">http://www.dhcpserver.de/cms/?p=915</guid>
		<description><![CDATA[V2.10.3.0 released 29/07/2025. All versions update for Windows 32-Bit, Windows 64-Bit, Raspberry 32-bit and Raspberry 64-bit. This release includes bug fixes with respect to class A/B networks under Linux and allows blanks in IPPOOL definitions in the INI file.]]></description>
				<content:encoded><![CDATA[<p>V2.10.3.0 released 29/07/2025. All versions update for Windows 32-Bit, Windows 64-Bit, Raspberry 32-bit and Raspberry 64-bit. This release includes bug fixes with respect to class A/B networks under Linux and allows blanks in IPPOOL definitions in the INI file.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dhcpserver.de/cms/release_notes/v2-10-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>V2.10.2</title>
		<link>http://www.dhcpserver.de/cms/release_notes/v2-10-2/</link>
		<comments>http://www.dhcpserver.de/cms/release_notes/v2-10-2/#comments</comments>
		<pubDate>Sun, 22 Jun 2025 07:05:23 +0000</pubDate>
		<dc:creator><![CDATA[uwe]]></dc:creator>
				<category><![CDATA[release-note]]></category>

		<guid isPermaLink="false">http://www.dhcpserver.de/cms/?p=912</guid>
		<description><![CDATA[V2.10.2.0 released 22/06/2025. All versions update for Windows 32-Bit, Windows 64-Bit, Raspberry 32-bit and Raspberry 64-bit. This release includes bug fixes with respect to INI file settings with blanks not always recognized.]]></description>
				<content:encoded><![CDATA[<p>V2.10.2.0 released 22/06/2025. All versions update for Windows 32-Bit, Windows 64-Bit, Raspberry 32-bit and Raspberry 64-bit. This release includes bug fixes with respect to INI file settings with blanks not always recognized.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dhcpserver.de/cms/release_notes/v2-10-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>V2.10.1</title>
		<link>http://www.dhcpserver.de/cms/release_notes/v2-10-1/</link>
		<comments>http://www.dhcpserver.de/cms/release_notes/v2-10-1/#comments</comments>
		<pubDate>Sat, 03 May 2025 07:13:37 +0000</pubDate>
		<dc:creator><![CDATA[uwe]]></dc:creator>
				<category><![CDATA[release-note]]></category>

		<guid isPermaLink="false">http://www.dhcpserver.de/cms/?p=895</guid>
		<description><![CDATA[V2.10.1.0 released 03/05/2025. All versions update for Windows 32-Bit, Windows 64-Bit, Raspberry 32-bit and Raspberry 64-bit. This release includes the following: 64-bit version for raspberry Copy-Option feature (see here) Smaller bug fixes The download is available after a donation is made.]]></description>
				<content:encoded><![CDATA[<p>V2.10.1.0 released 03/05/2025. All versions update for Windows 32-Bit, Windows 64-Bit, Raspberry 32-bit and Raspberry 64-bit. This release includes the following:</p>
<ul>
<li>64-bit version for raspberry</li>
<li>Copy-Option feature (see <a title="Custom options" href="http://www.dhcpserver.de/cms/ini_file_reference/special/custom-options/">here</a>)</li>
<li>Smaller bug fixes</li>
</ul>
<p>The download is available after a donation is made.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dhcpserver.de/cms/release_notes/v2-10-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>V2.10.0</title>
		<link>http://www.dhcpserver.de/cms/release_notes/v2-10-0/</link>
		<comments>http://www.dhcpserver.de/cms/release_notes/v2-10-0/#comments</comments>
		<pubDate>Tue, 17 Sep 2024 07:14:52 +0000</pubDate>
		<dc:creator><![CDATA[uwe]]></dc:creator>
				<category><![CDATA[release-note]]></category>

		<guid isPermaLink="false">http://www.dhcpserver.de/cms/?p=876</guid>
		<description><![CDATA[V2.10.0.0 released 17/9/2024. All versions update for Windows 32-Bit, Windows 64-Bit and Raspberry. This release includes the following: IgnoreRequestedAddress (see here) Improved tracing information Display Hostname and IP address in tray balloon message Wizard does not add 0.0.0.0 as a router anymore Smaller bug fixes The download is available after a donation is made.]]></description>
				<content:encoded><![CDATA[<p>V2.10.0.0 released 17/9/2024. All versions update for Windows 32-Bit, Windows 64-Bit and Raspberry. This release includes the following:</p>
<ul>
<li>IgnoreRequestedAddress (see <a title="IgnoreRequestedAddress" href="http://www.dhcpserver.de/cms/ini_file_reference/settings/ignorerequestedaddress/">here</a>)</li>
<li>Improved tracing information</li>
<li>Display Hostname and IP address in tray balloon message</li>
<li>Wizard does not add 0.0.0.0 as a router anymore</li>
<li>Smaller bug fixes</li>
</ul>
<p>The download is available after a donation is made.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dhcpserver.de/cms/release_notes/v2-10-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IgnoreRequestedAddress</title>
		<link>http://www.dhcpserver.de/cms/ini_file_reference/settings/ignorerequestedaddress/</link>
		<comments>http://www.dhcpserver.de/cms/ini_file_reference/settings/ignorerequestedaddress/#comments</comments>
		<pubDate>Tue, 17 Sep 2024 07:12:33 +0000</pubDate>
		<dc:creator><![CDATA[uwe]]></dc:creator>
				<category><![CDATA[settings]]></category>

		<guid isPermaLink="false">http://www.dhcpserver.de/cms/?p=882</guid>
		<description><![CDATA[Changes how the DHCP Server interprets the requested address submitted from a client. [Settings] IgnoreRequestedAddress=1 ; Default: 0 (don't ignore) If IgnoreRequestedAddress is set to 0 (default): The DHCP server will take the requested address from an unknown client into account when selecting an address to offer, matching the requested address as long as it [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Changes how the DHCP Server interprets the requested address submitted from a client.</p>
<pre class="textbox">[Settings]
IgnoreRequestedAddress=1        ; Default: 0 (don't ignore)</pre>
<p>If IgnoreRequestedAddress is set to 0 (default): The DHCP server will take the requested address from an unknown client into account when selecting an address to offer, matching the requested address as long as it is free and inside the IP pool.</p>
<div dir="auto">
<p>If IgnoreRequestedAddress is set to 1: The DHCP server will ignore unknown clients suggestion on IP address. Leading to the DHCP server not taking the client request for a specific IP address in account when selection an address to offer the client.</p>
<p>This behavior might not be fully confirmative with the DHCP specification and is not recommended in general usage. But might be useful in special cases.</p>
</div>
<p>This feature was an added in V2.10.0.0.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dhcpserver.de/cms/ini_file_reference/settings/ignorerequestedaddress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>V2.9.4.1</title>
		<link>http://www.dhcpserver.de/cms/release_notes/v2-9-4-1/</link>
		<comments>http://www.dhcpserver.de/cms/release_notes/v2-9-4-1/#comments</comments>
		<pubDate>Sun, 18 Aug 2024 06:27:02 +0000</pubDate>
		<dc:creator><![CDATA[uwe]]></dc:creator>
				<category><![CDATA[release-note]]></category>

		<guid isPermaLink="false">http://www.dhcpserver.de/cms/?p=872</guid>
		<description><![CDATA[V2.9.4.1 released 18/8/2024. This release includes a native Visual Studio 2022 compilation for Windows 64-bit  (dhcpsrv64.exe) and an updated version to a common code base for Windows 32-bit and Raspberry. The download is available after a donation is made.]]></description>
				<content:encoded><![CDATA[<p>V2.9.4.1 released 18/8/2024. This release includes a native Visual Studio 2022 compilation for Windows 64-bit  (dhcpsrv64.exe) and an updated version to a common code base for Windows 32-bit and Raspberry.</p>
<p>The download is available after a donation is made.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dhcpserver.de/cms/release_notes/v2-9-4-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to run external scripts from the HTTP server?</title>
		<link>http://www.dhcpserver.de/cms/faq/external-scripts/</link>
		<comments>http://www.dhcpserver.de/cms/faq/external-scripts/#comments</comments>
		<pubDate>Sun, 11 Aug 2024 07:38:19 +0000</pubDate>
		<dc:creator><![CDATA[uwe]]></dc:creator>
				<category><![CDATA[faq]]></category>

		<guid isPermaLink="false">http://www.dhcpserver.de/cms/?p=835</guid>
		<description><![CDATA[External scripts are a great way to enhance the HTTP server with specific features. This is supported in the Raspberry Pi Version V2.9.4.0 only, for now. The external script can be actually any executable, but the most obvious is to run a bash script. Here is an example: #!/bin/bash echo "&#60;!DOCTYPE html&#62;&#60;html&#62;&#60;head&#62;" echo "&#60;/head&#62;&#60;body&#62;" echo "&#60;h2&#62;Hello [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>External scripts are a great way to enhance the HTTP server with specific features. This is supported in the Raspberry Pi Version V2.9.4.0 only, for now.</p>
<p>The external script can be actually any executable, but the most obvious is to run a bash script. Here is an example:</p>
<pre>#!/bin/bash
echo "&lt;!DOCTYPE html&gt;&lt;html&gt;&lt;head&gt;"
echo "&lt;/head&gt;&lt;body&gt;"
echo "&lt;h2&gt;Hello Script&lt;/h2&gt;"
echo "&lt;/body&gt;&lt;/html&gt;"
</pre>
<p>Place this file into your wwwroot folder name it say &#8220;script01&#8243; and make it an executable with the chmod command from the command line:</p>
<pre>cd /usr/local/etc/dhcpsrv/wwwroot
chmod +x script01</pre>
<p>It is assumed that the HTTP Server function is enabled and reachable by an url such as http://raspberry. To execute script01 and see the resulting page enter http://raspberry/script01 into the address line of your browser and you will see the  Hello Script page. If that is not the case then please check the <a title="Why is the DHCP Status web page not showing?" href="https://www.dhcpserver.de/cms/faq/why_no_status_page/">HTTP server configuration</a>.</p>
<p>In case you don&#8217;t want to return HTML code from your script but for example some JSON structure then this can be done as well. This a bash script that returns a JSON structure:</p>
<pre>#!/bin/bash
DATA="{\"valid\":true}"
# write to stdout the HTTP response
DATESTRING=$(date "+%a, %d %b %Y %H:%M:%S %Z")
printf "HTTP/1.1 200 OK\r\n"
printf "Date: %s\r\n" "$DATESTRING"
printf "Last-Modified: %s\r\n" "$DATESTRING"
printf "Server: %s\r\n" "dhcpsrv"
printf "Content-Type: %s\r\n" "application/json"
printf "Content-Length: %s\r\n" "${#DATA}"
printf "\r\n"
printf "%s" "$DATA"</pre>
<p>As you can see the big difference is that in case of something else than a &lt;!DOCTYPE html&gt;, the full header needs to be included into the output of the bash script. Let&#8217;s paste the above into a bash script02 file and make that executable as well with chmod, then your browser will display the JSON output when directed to the url http://raspberry/script02.</p>
<p>The examples so far were HTTP GET use cases. Now let&#8217;s take a look at POST requests. POST requests differ from GET requests in extra data supplied from the client app running in the browser. This extra data is usually a list of key/value pairs as they are coming from an HTML form. The DHCP server integrated HTTP function writes that extra data into a temporary file and that filename is supplied as a parameter to the external script. Here is an example on how to deal with that:</p>
<pre>#!/bin/bash
saveIFS=$IFS
IFS='=&amp;'

declare -A post

if [ -f "$1" ]; then
 # construct the associative array for POST_STRING
 POST_STRING="$(&lt;"$1")"
 parm=($POST_STRING)
 for ((i=0; i&lt;${#parm[@]}; i+=2))
 do
    post[${parm[i]}]=${parm[i+1]}
 done
fi

IFS=$saveIFS

# do something with the post data e.g. ${post["firstname"]}

printf "HTTP/1.1 301 Moved Permanently\r\n"
printf "Date: %s\r\n" "$DATESTRING"
printf "Last-Modified: %s\r\n" "$DATESTRING"
printf "Server: %s\r\n" "dhcpsrv"
printf "Location: %s\r\n" "post.html"
printf "\r\n"</pre>
<p>We see two important things here:</p>
<ol>
<li>The post data is read from the file supplied as a argument $1 into a param array splitted by &#8216;=&#8217; and &#8216;&amp;&#8217;. The param array is only there to construct an associative array with the name &#8220;post&#8221;.   That in turn can be used by the script to perform the required action on that data.</li>
<li>The returning result text from the script is now a redirect header. This is part of the post-redirect-get pattern commonly used together with POST requests. In this case the redirection target is post.html and obviously can be anything else.</li>
</ol>
<p>We save the above script as &#8220;script03&#8243; in the wwwroot folder and call that script from a post request such as in the following example HTML post.html:</p>
<pre>&lt;!DOCTYPE html&gt;
&lt;html&gt;
 &lt;head&gt;
 &lt;/head&gt;
 &lt;body&gt;
  &lt;form method="post" id="form1"&gt;
   &lt;label for="firstname"&gt;First name:&lt;/label&gt;
   &lt;input id="id_firstname" type="text" name="firstname" p/&gt;&lt;br /&gt;

   &lt;label for="lastname"&gt;Last name:&lt;/label&gt;
   &lt;input id="id_lastname" type="text" name="lastname" p/&gt;&lt;br /&gt;

  &lt;/form&gt;
  &lt;button type="submit" form="form1" value="Submit" formaction="script03"&gt;Submit&lt;/button&gt;
 &lt;/body&gt;
&lt;/html&gt;</pre>
<p>This HTML code presents a form with two entry fields &#8220;First name&#8221; and &#8220;Last name&#8221;. Those will show up in the script03 as  ${post[&#8220;firstname&#8221;]} and ${post[&#8220;lastname&#8221;]} and can be used to perform whatever that script needs to do.</p>
<p>QUERY data is supported as well, as they are supplied as part of the URL such as &#8220;http://raspberry/script04?key1=value1&amp;key2=value2&#8243;. An enhanced version of script03 (called script04) can make use of the query data as follows:</p>
<pre>#!/bin/bash
saveIFS=$IFS
IFS='=&amp;'

declare -A post
<strong>declare -A query</strong>

<strong># construct the associative array for QUERY_STRING
parm=($QUERY_STRING)
for ((i=0; i&lt;${#parm[@]}; i+=2))
do
 query[${parm[i]}]=${parm[i+1]}
done
</strong>
if [ -f "$1" ]; then
 # construct the associative array for POST_STRING
 POST_STRING="$(&lt;"$1")"
 parm=($POST_STRING)
 for ((i=0; i&lt;${#parm[@]}; i+=2))
 do
    post[${parm[i]}]=${parm[i+1]}
 done
fi

IFS=$saveIFS

# do something with the post data e.g. ${post["firstname"]} or ${query["key1"]}

printf "HTTP/1.1 301 Moved Permanently\r\n"
printf "Date: %s\r\n" "$DATESTRING"
printf "Last-Modified: %s\r\n" "$DATESTRING"
printf "Server: %s\r\n" "dhcpsrv"
printf "Location: %s\r\n" "post.html"
printf "\r\n"</pre>
<p>The scripts executed this way run with the privilege of the dhcpsrv executable. Usually root privileges in case of systemctl based installation as described <a title="DHCP Server on Raspberry Pi" href="https://www.dhcpserver.de/cms/dhcp-server-on-raspberry-pi/">here</a>. Handle with care!</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dhcpserver.de/cms/faq/external-scripts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Does the integrated HTTP Server support POST?</title>
		<link>http://www.dhcpserver.de/cms/faq/does-the-integrated-http-server-support-post/</link>
		<comments>http://www.dhcpserver.de/cms/faq/does-the-integrated-http-server-support-post/#comments</comments>
		<pubDate>Sun, 11 Aug 2024 07:35:53 +0000</pubDate>
		<dc:creator><![CDATA[uwe]]></dc:creator>
				<category><![CDATA[faq]]></category>

		<guid isPermaLink="false">http://www.dhcpserver.de/cms/?p=833</guid>
		<description><![CDATA[Yes, POST requests are supported since V2.9.4.0 on Raspberry Pi version only for now. It works in a CGI like manner and is described in detail here.]]></description>
				<content:encoded><![CDATA[<p style="text-align: left;">Yes, POST requests are supported since V2.9.4.0 on Raspberry Pi version only for now. It works in a CGI like manner and is described in detail <a title="How to run external scripts from the HTTP server?" href="https://www.dhcpserver.de/cms/faq/external-scripts/">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dhcpserver.de/cms/faq/does-the-integrated-http-server-support-post/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
