<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://wiki.dxcluster.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=EA3CV</id>
	<title>DXSpider Documentation Wiki - User contributions [en-gb]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.dxcluster.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=EA3CV"/>
	<link rel="alternate" type="text/html" href="https://wiki.dxcluster.org/wiki/Special:Contributions/EA3CV"/>
	<updated>2026-04-20T15:38:01Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://wiki.dxcluster.org/w/index.php?title=Download_DXSpider_v1.57_Mojo&amp;diff=485</id>
		<title>Download DXSpider v1.57 Mojo</title>
		<link rel="alternate" type="text/html" href="https://wiki.dxcluster.org/w/index.php?title=Download_DXSpider_v1.57_Mojo&amp;diff=485"/>
		<updated>2026-03-11T14:02:54Z</updated>

		<summary type="html">&lt;p&gt;EA3CV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Download DXSpider v1.57 Mojo ==&lt;br /&gt;
&lt;br /&gt;
While the official &#039;&#039;&#039;DXSpider&#039;&#039;&#039; repository is currently unavailable, the latest version can be downloaded from the following repository.&lt;br /&gt;
&lt;br /&gt;
The original documentation refers to cloning the repository with:&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width:auto; margin-left:1.6em; border:1px solid #ccc; background:#f8f8f8;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px;&amp;quot; | &amp;lt;code style=&amp;quot;border:0; background:transparent;&amp;quot;&amp;gt;git clone git://scm.dxcluster.org/scm/spider&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
At the moment this can be replaced with:&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width:auto; margin-left:1.6em; border:1px solid #ccc; background:#f8f8f8;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px;&amp;quot; | &amp;lt;code style=&amp;quot;border:0; background:transparent;&amp;quot;&amp;gt;git clone https://github.com/EA3CV/dxspider&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This repository provides access to the &#039;&#039;&#039;DXSpider Mojo branch (v1.57)&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
If you want to update an existing installation from the &#039;&#039;&#039;Master branch (1.55)&#039;&#039;&#039; to the &#039;&#039;&#039;Mojo branch (1.57)&#039;&#039;&#039;, please see [[DXSpider_MOJO_Version_Update_Script]].&lt;br /&gt;
&lt;br /&gt;
If you want to automate the installation, you can see:&lt;br /&gt;
[https://github.com/EA3CV/dxspider_update] update_dxspider_alternative.sh&lt;/div&gt;</summary>
		<author><name>EA3CV</name></author>
	</entry>
	<entry>
		<id>https://wiki.dxcluster.org/w/index.php?title=Download_DXSpider_v1.57_Mojo&amp;diff=484</id>
		<title>Download DXSpider v1.57 Mojo</title>
		<link rel="alternate" type="text/html" href="https://wiki.dxcluster.org/w/index.php?title=Download_DXSpider_v1.57_Mojo&amp;diff=484"/>
		<updated>2026-03-11T10:11:13Z</updated>

		<summary type="html">&lt;p&gt;EA3CV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Download DXSpider v1.57 Mojo ==&lt;br /&gt;
&lt;br /&gt;
While the official &#039;&#039;&#039;DXSpider&#039;&#039;&#039; repository is currently unavailable, the latest version can be downloaded from the following repository.&lt;br /&gt;
&lt;br /&gt;
The original documentation refers to cloning the repository with:&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width:auto; margin-left:1.6em; border:1px solid #ccc; background:#f8f8f8;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px;&amp;quot; | &amp;lt;code style=&amp;quot;border:0; background:transparent;&amp;quot;&amp;gt;git clone git://scm.dxcluster.org/scm/spider&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
At the moment this can be replaced with:&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width:auto; margin-left:1.6em; border:1px solid #ccc; background:#f8f8f8;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px;&amp;quot; | &amp;lt;code style=&amp;quot;border:0; background:transparent;&amp;quot;&amp;gt;git clone https://github.com/EA3CV/dxspider.git&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This repository provides access to the &#039;&#039;&#039;DXSpider Mojo branch (v1.57)&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
If you want to update an existing installation from the &#039;&#039;&#039;Master branch (1.55)&#039;&#039;&#039; to the &#039;&#039;&#039;Mojo branch (1.57)&#039;&#039;&#039;, please see [[DXSpider_MOJO_Version_Update_Script]].&lt;br /&gt;
&lt;br /&gt;
If you want to automate the installation, you can see:&lt;br /&gt;
[https://github.com/EA3CV/dxspider_update] update_dxspider_alternative.sh&lt;/div&gt;</summary>
		<author><name>EA3CV</name></author>
	</entry>
	<entry>
		<id>https://wiki.dxcluster.org/w/index.php?title=Download_DXSpider_v1.57_Mojo&amp;diff=483</id>
		<title>Download DXSpider v1.57 Mojo</title>
		<link rel="alternate" type="text/html" href="https://wiki.dxcluster.org/w/index.php?title=Download_DXSpider_v1.57_Mojo&amp;diff=483"/>
		<updated>2026-03-11T10:09:17Z</updated>

		<summary type="html">&lt;p&gt;EA3CV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Download DXSpider v1.57 Mojo ==&lt;br /&gt;
&lt;br /&gt;
While the official &#039;&#039;&#039;DXSpider&#039;&#039;&#039; repository is currently unavailable, the latest version can be downloaded from the following repository.&lt;br /&gt;
&lt;br /&gt;
The original documentation refers to cloning the repository with:&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width:auto; margin-left:1.6em; border:1px solid #ccc; background:#f8f8f8;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px;&amp;quot; | &amp;lt;code style=&amp;quot;border:0; background:transparent;&amp;quot;&amp;gt;git clone git://scm.dxcluster.org/scm/spider&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
At the moment this can be replaced with:&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width:auto; margin-left:1.6em; border:1px solid #ccc; background:#f8f8f8;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px;&amp;quot; | &amp;lt;code style=&amp;quot;border:0; background:transparent;&amp;quot;&amp;gt;git clone https://github.com/EA3CV/dxspider.git&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This repository provides access to the &#039;&#039;&#039;DXSpider Mojo branch (v1.57)&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
If you want to update an existing installation from the &#039;&#039;&#039;Master branch (1.55)&#039;&#039;&#039; to the &#039;&#039;&#039;Mojo branch (1.57)&#039;&#039;&#039;, please see [[DXSpider_MOJO_Version_Update_Script]].&lt;br /&gt;
&lt;br /&gt;
If you want to automate the installation, you can see:&lt;br /&gt;
[https://github.com/EA3CV/dxspider_update/blob/main/update_dxspider_alternative.sh update_dxspider_alternative.sh]&lt;/div&gt;</summary>
		<author><name>EA3CV</name></author>
	</entry>
	<entry>
		<id>https://wiki.dxcluster.org/w/index.php?title=Download_DXSpider_v1.57_Mojo&amp;diff=482</id>
		<title>Download DXSpider v1.57 Mojo</title>
		<link rel="alternate" type="text/html" href="https://wiki.dxcluster.org/w/index.php?title=Download_DXSpider_v1.57_Mojo&amp;diff=482"/>
		<updated>2026-03-11T09:59:55Z</updated>

		<summary type="html">&lt;p&gt;EA3CV: Temporal Download&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Download DXSpider v1.57 Mojo ==&lt;br /&gt;
&lt;br /&gt;
While the official &#039;&#039;&#039;DXSpider&#039;&#039;&#039; repository is currently unavailable, the latest version can be downloaded from the following repository.&lt;br /&gt;
&lt;br /&gt;
The original documentation refers to cloning the repository with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone git://scm.dxcluster.org/scm/spider&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At the moment this can be replaced with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/EA3CV/dxspider.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This repository provides access to the &#039;&#039;&#039;DXSpider Mojo branch (v1.57)&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
If you want to update an existing installation from the &#039;&#039;&#039;Master branch (1.55)&#039;&#039;&#039; to the &#039;&#039;&#039;Mojo branch (1.57)&#039;&#039;&#039;, please see:&lt;br /&gt;
&lt;br /&gt;
[[DXSpider_MOJO_Version_Update_Script]]&lt;/div&gt;</summary>
		<author><name>EA3CV</name></author>
	</entry>
	<entry>
		<id>https://wiki.dxcluster.org/w/index.php?title=Node_configuration_for_user_access&amp;diff=441</id>
		<title>Node configuration for user access</title>
		<link rel="alternate" type="text/html" href="https://wiki.dxcluster.org/w/index.php?title=Node_configuration_for_user_access&amp;diff=441"/>
		<updated>2025-04-28T05:36:43Z</updated>

		<summary type="html">&lt;p&gt;EA3CV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
===User Registration===&lt;br /&gt;
----&lt;br /&gt;
There are two types of user in a DXSpider node, a registered user and an unregistered user. &lt;br /&gt;
By default, all users belong to the unregistered category.&lt;br /&gt;
&lt;br /&gt;
===Node in UNREGISTERED Mode===&lt;br /&gt;
----&lt;br /&gt;
This is the default way of working, but not necessarily the best.&lt;br /&gt;
&lt;br /&gt;
The global variable that sets the node type is &#039;&#039;&#039;$main::reqreg&#039;&#039;&#039;&lt;br /&gt;
and its default value is &#039;&#039;&#039;0&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  set/var $main::reqreg = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this mode the sysop doesn&#039;t have to register users, but if they are registered, then it will simply be a database entry.&lt;br /&gt;
Both types of user will have the same capabilities to send and receive SPOTS, ANN, etc&lt;br /&gt;
&lt;br /&gt;
===Node in REGISTRATION Mode===&lt;br /&gt;
----&lt;br /&gt;
To activate registration, the global variable &#039;&#039;&#039;$main::reqreg&#039;&#039;&#039; must be set to &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
The way to change it is&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  set/var $main::reqreg = 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When this mode is activated, only users that the sysop has registered will be able to send and receive SPOTS, ANN, etc.  Unregistered users will only be able to receive information.&lt;br /&gt;
&lt;br /&gt;
The way to register/unregister a user is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  set/register &amp;lt;call&amp;gt;&lt;br /&gt;
  unset/register &amp;lt;call&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can check which users we have registered using&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  sh/register &amp;lt;call&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A specific login banner for registered users can be shown. The file containing it is the following&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  /spider/_local_data/motd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When an unregistered user starts the login process, they can be sent a different file that can be configured to say that they are not registered and how to register should they wish to do so.  This file is ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  /spider/local_data/motd_nor&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Password Usage===&lt;br /&gt;
----&lt;br /&gt;
By default, a user does not get prompted for a password at login. For additional security, a user can request a password be set for them.  They simply need to request a password that they provide to the sysop.&lt;br /&gt;
&lt;br /&gt;
It should be noted that this only works on the node they regularly use.  Their password is not propagated across the network for security reasons.&lt;br /&gt;
&lt;br /&gt;
For a user to be assigned a password, the sysop needs to use the command ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  set/password &amp;lt;call&amp;gt; &amp;lt;string&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and the user can change his password with the command&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  set/password&lt;br /&gt;
	Enter old password:&lt;br /&gt;
	Enter new password:&lt;br /&gt;
	Re-enter new password:&lt;br /&gt;
  Password changed&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Node in NO PASSWORD Mode===&lt;br /&gt;
----&lt;br /&gt;
The global variable &#039;&#039;&#039;$main::passwdreq&#039;&#039;&#039; is set to &#039;&#039;&#039;0&#039;&#039;&#039; by default.  This does not mean that they cannot have a password set, only that users are not forced to have a password.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To see the value of the variable use ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  sh/var $main::passwdreq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Node in PASSWORD Mode===&lt;br /&gt;
----&lt;br /&gt;
If we set the &#039;&#039;&#039;$main::passwdreq&#039;&#039;&#039; variable to &#039;&#039;&#039;1&#039;&#039;&#039;, we will force any user logging in to the node to use a password as well as their callsign, otherwise they will not be able to access the node.&lt;br /&gt;
&lt;br /&gt;
The node will not establish the session if there is no positive authentication.&lt;br /&gt;
&lt;br /&gt;
To set this mode of operation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  set/var $main::passwdreq = 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How To protect your cluster node (Recommended configuration)===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
One way to control the correct use of our node, is to use the combination of registration and password as follows.&lt;br /&gt;
&lt;br /&gt;
We enable the registration for all the users&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  set/var $main::reqreg = 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;	&lt;br /&gt;
&lt;br /&gt;
The beauty of this is that people who try to login with callsigns like ID1OT or even using random callsigns cannot post spots or announcements from the node.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  set/var $main::passwdreq = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Of course, a user may wish to have a password set to increase their security on the node, meaning that unless someone also knows the password, their call cannot be used by someone else unless they know the password.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  set/register &amp;lt;call&amp;gt;&lt;br /&gt;
  set/password &amp;lt;call&amp;gt; &amp;lt;string&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is &amp;lt;b&amp;gt;strongly&amp;lt;/b&amp;gt; suggested that sysops enable registration to try and combat the increasing misuse on the cluster network&lt;br /&gt;
&lt;br /&gt;
===Make Changes Permanent===&lt;br /&gt;
----&lt;br /&gt;
Although sysops can enable or disable these variables at any time from the console, this will only be enabled until the node is restarted. if we want to keep them during the startup of the node, we must edit the file ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  /spider/scripts/startup&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and include the following lines&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  set/var $main::reqreg = 1&lt;br /&gt;
  set/var $main::passwdreq = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The changes to this file will not take effect until there is a reboot, so we can activate it manually the first time from the console by typing&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  set/var $main::reqreg = 1&lt;br /&gt;
  set/var $main::passwdreq = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>EA3CV</name></author>
	</entry>
	<entry>
		<id>https://wiki.dxcluster.org/w/index.php?title=DXSpider_Registration_Support_System&amp;diff=415</id>
		<title>DXSpider Registration Support System</title>
		<link rel="alternate" type="text/html" href="https://wiki.dxcluster.org/w/index.php?title=DXSpider_Registration_Support_System&amp;diff=415"/>
		<updated>2025-04-13T18:05:14Z</updated>

		<summary type="html">&lt;p&gt;EA3CV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= DXSpider Registration Support System =&lt;br /&gt;
&lt;br /&gt;
📡 &#039;&#039;&#039;DXSpider Registration Support System&#039;&#039;&#039; provides a user-friendly way for sysops to manage registration requests via &#039;&#039;&#039;email&#039;&#039;&#039; and/or &#039;&#039;&#039;Telegram&#039;&#039;&#039;, with clear messages and configurable templates in &#039;&#039;&#039;Spanish and English&#039;&#039;&#039; (default).&lt;br /&gt;
&lt;br /&gt;
== 📌 Purpose ==&lt;br /&gt;
&lt;br /&gt;
This system adds simple tools to support &#039;&#039;&#039;registration and password management&#039;&#039;&#039; on a DXSpider node. It allows users to send a request, and sysops to authorize or deny it with minimal effort, while keeping a record of all registration requests and their acceptance or denial.&lt;br /&gt;
It is not allowed to send more than 10 messages per day per IP.&lt;br /&gt;
&lt;br /&gt;
== ⚙️ Features ==&lt;br /&gt;
&lt;br /&gt;
* Users send requests via a simple command: &amp;lt;code&amp;gt;msg_sysop&amp;lt;/code&amp;gt;&lt;br /&gt;
* Sysops receive Telegram alerts and emails&lt;br /&gt;
* Sysops can approve (&amp;lt;code&amp;gt;auth_register&amp;lt;/code&amp;gt;) or reject (&amp;lt;code&amp;gt;deny_reg&amp;lt;/code&amp;gt;) registrations&lt;br /&gt;
* Sends multilingual confirmation/denial messages to users&lt;br /&gt;
* Configurable templates for email content (Spanish/English)&lt;br /&gt;
&lt;br /&gt;
== 📥 Commands Usage ==&lt;br /&gt;
&lt;br /&gt;
The system uses three main commands for managing user registrations:&lt;br /&gt;
&lt;br /&gt;
=== msg_sysop ===&lt;br /&gt;
Used by the user to send a registration request.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
msg_sysop &amp;lt;user_call&amp;gt; REGISTER &amp;lt;user_email&amp;gt; &amp;lt;comments&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
msg_sysop EA1ZZZ REGISTER ea1zzz@example.net I would like to join the cluster&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== auth_register ===&lt;br /&gt;
Used by the sysop to approve and register the user.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auth_reg &amp;lt;user_call&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auth_reg EA1ZZZ&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== deny_register ===&lt;br /&gt;
Used by the sysop to reject a registration request.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deny_reg &amp;lt;user_call&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deny_reg EA1ZZZ&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 📢 How It Works: Full Example ==&lt;br /&gt;
&lt;br /&gt;
=== REGISTRATION REQUEST (msg_sysop) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User input from Telnet:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
msg_sysop XX0ABC REGISTER xx0abc@domain.com Requesting access&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width:50%; vertical-align:top;&amp;quot; | Response to user&lt;br /&gt;
! style=&amp;quot;width:50%; vertical-align:top;&amp;quot; | To sysop via email&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Message sent to sysop.&lt;br /&gt;
   Call: XX0ABC&lt;br /&gt;
Subject: REGISTER&lt;br /&gt;
  Email: xx0abc@domain.com&lt;br /&gt;
Message: Requesting access&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Subject: Msg received from XX0ABC (REGISTER) to EA3CV-2&lt;br /&gt;
&lt;br /&gt;
New message via msg_sysop command:&lt;br /&gt;
&lt;br /&gt;
Node: EA3CV-2&lt;br /&gt;
Call: XX0ABC&lt;br /&gt;
Subject: REGISTER&lt;br /&gt;
Email: xx0abc@domain.com&lt;br /&gt;
IP: 1.2.3.4&lt;br /&gt;
Message: Requesting access&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;vertical-align:top;&amp;quot; | To user via email&lt;br /&gt;
! style=&amp;quot;vertical-align:top;&amp;quot; | To sysop via Telegram&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Asunto: Msg del sysop de / Msg from sysop of EA3CV-2&lt;br /&gt;
&lt;br /&gt;
En breve recibira una respuesta.&lt;br /&gt;
Saludos.&lt;br /&gt;
&lt;br /&gt;
You will receive a response shortly.&lt;br /&gt;
Regards,&lt;br /&gt;
&lt;br /&gt;
Kin EA3CV&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
📡 Message from DXSpider command:&lt;br /&gt;
Date: 13 April 2025 16:35:02&lt;br /&gt;
Call: XX0ABC&lt;br /&gt;
Subject: REGISTER&lt;br /&gt;
Email: xx0abc@domain.com&lt;br /&gt;
Sent by: EA3CV&lt;br /&gt;
IP: 1.2.3.4&lt;br /&gt;
Requesting access&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Entry in pending_reg.txt:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
20250413-163500,00000000-000000,PENDING ,XX0ABC,u$2wGVX=,1.2.3.4,xx0abc@domain.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== REGISTRATION APPROVAL (auth_register) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sysop input from Console:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auth_reg XX0ABC&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width:50%; vertical-align:top;&amp;quot; | Sysop output&lt;br /&gt;
! style=&amp;quot;width:50%; vertical-align:top;&amp;quot; | To user via email&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Registration completed for XX0ABC&lt;br /&gt;
Email: joaquin@cronux.net&lt;br /&gt;
IP:    127.0.0.1&lt;br /&gt;
Pass:  u$2wGVX=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Asunto: Aceptada su solicitud de registro / Registration accepted XX0ABC at EA3CV-2&lt;br /&gt;
&lt;br /&gt;
Se ha aceptado su solicitud de registro&lt;br /&gt;
&lt;br /&gt;
Usuario: XX0ABC&lt;br /&gt;
Password: u$2wGVX=&lt;br /&gt;
&lt;br /&gt;
Use el comando `set/password` para cambiar la contraseña si lo desea.&lt;br /&gt;
Disfrute.&lt;br /&gt;
&lt;br /&gt;
Your registration request has been approved.&lt;br /&gt;
&lt;br /&gt;
User: XX0ABC&lt;br /&gt;
Password: u$2wGVX=&lt;br /&gt;
&lt;br /&gt;
You can use the `set/password` command to change your password if you wish.&lt;br /&gt;
Enjoy.&lt;br /&gt;
&lt;br /&gt;
Kin EA3CV&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Entry in pending_reg.txt:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
20250413-163500,20250413-164558,ACCEPTED,XX0ABC,u$2wGVX=,1.2.3.4,xx0abc@domain.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== REGISTRATION DENIAL (deny_register) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sysop input from Console:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deny_reg XX0ABC&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width:50%; vertical-align:top;&amp;quot; | Sysop output&lt;br /&gt;
! style=&amp;quot;width:50%; vertical-align:top;&amp;quot; | To user via email&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Registration denied for XX0ABC&lt;br /&gt;
Email: joaquin@cronux.net&lt;br /&gt;
IP:    127.0.0.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Asunto: Denegada su solicitud de registro / Registration denied XX0ABC at EA3CV-2&lt;br /&gt;
&lt;br /&gt;
Se ha denegado su solicitud de registro.&lt;br /&gt;
&lt;br /&gt;
Si cree que esto es un error, puede contactar con el administrador.&lt;br /&gt;
Gracias.&lt;br /&gt;
&lt;br /&gt;
Your registration request has been denied.&lt;br /&gt;
&lt;br /&gt;
If you believe this is a mistake, please contact the administrator.&lt;br /&gt;
Thank you.&lt;br /&gt;
&lt;br /&gt;
Kin EA3CV&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;vertical-align:top;&amp;quot; | To sysop via Telegram&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
❌ DENIED registration of XX0ABC from 127.0.0.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Entry in pending_reg.txt:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
20250413-163500,20250413-165008,DENIED  ,XX0ABC,u$2wGVX=,1.2.3.4,xx0abc@domain.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 📂 Scripts Included ==&lt;br /&gt;
&lt;br /&gt;
All scripts go in &amp;lt;code&amp;gt;/spider/local_cmd/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/EA3CV/dxspider_info/blob/main/msg_sysop.pl msg_sysop.pl]&lt;br /&gt;
* [https://github.com/EA3CV/dxspider_info/blob/main/auth_register.pl auth_register.pl]&lt;br /&gt;
* [https://github.com/EA3CV/dxspider_info/blob/main/deny_register.pl deny_register.pl]&lt;br /&gt;
&lt;br /&gt;
Also required:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/EA3CV/dxspider_info/blob/main/Local.pm Local.pm] → to &amp;lt;code&amp;gt;/spider/local/Local.pm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 🧩 Configuration: DXVars.pm ==&lt;br /&gt;
&lt;br /&gt;
Append to &amp;lt;code&amp;gt;/spider/local/DXVars.pm&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
# Telegram config&lt;br /&gt;
$id = &amp;quot;123456789&amp;quot;;&lt;br /&gt;
$token = &amp;quot;123456789:ABCDEF-TOKEN&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Email SMTP config&lt;br /&gt;
$email_enable = 1;&lt;br /&gt;
$email_from = &#039;you@example.com&#039;;&lt;br /&gt;
$email_smtp = &#039;smtp.example.com&#039;;&lt;br /&gt;
$email_port = 587;      # Port 587 for STARTTLS/Port 465 for SSL)&lt;br /&gt;
$email_user = &#039;your_user&#039;;&lt;br /&gt;
$email_pass = &#039;your_pass&#039;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 📑 Files Used ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;/spider/local_data/pending_reg.txt&amp;lt;/code&amp;gt; — Automatically created&lt;br /&gt;
* &amp;lt;code&amp;gt;/spider/local_cmd/*.pl&amp;lt;/code&amp;gt; — Command scripts&lt;br /&gt;
* &amp;lt;code&amp;gt;/spider/local/Local.pm&amp;lt;/code&amp;gt; — Email &amp;amp; Telegram logic&lt;br /&gt;
* &amp;lt;code&amp;gt;/spider/local/DXvars.pm&amp;lt;/code&amp;gt; — Email and Telegram variables&lt;br /&gt;
&lt;br /&gt;
== 🔧 Installation ==&lt;br /&gt;
&lt;br /&gt;
# Copy the scripts to &amp;lt;code&amp;gt;/spider/local_cmd/&amp;lt;/code&amp;gt;&lt;br /&gt;
# Edit &amp;lt;code&amp;gt;/spider/local/DXVars.pm&amp;lt;/code&amp;gt; with your email and Telegram settings&lt;br /&gt;
# Install required Perl modules (see below)&lt;br /&gt;
# Restart the DXSpider node&lt;br /&gt;
&lt;br /&gt;
== 📦 Required Perl Modules ==&lt;br /&gt;
&lt;br /&gt;
Install with CPAN (from Linux shell):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cpan Net::SMTP&lt;br /&gt;
cpan Net::SMTP::SSL&lt;br /&gt;
cpan Net::MQTT::Simple&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ✏️ Template Customization ==&lt;br /&gt;
&lt;br /&gt;
Each script includes variables where you can &#039;&#039;&#039;modify the bilingual message content&#039;&#039;&#039;. Look for blocks like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
my $msg_text_ok = &amp;lt;&amp;lt;&amp;quot;EMAIL&amp;quot;;&lt;br /&gt;
...&lt;br /&gt;
EMAIL&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ✅ Commands Summary ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;msg_sysop&amp;lt;/code&amp;gt; || User sends registration request&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;auth_register&amp;lt;/code&amp;gt; || Sysop approves and registers the user&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;deny_reg&amp;lt;/code&amp;gt; || Sysop denies the request&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 👤 Author ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Kin EA3CV&#039;&#039;&#039; — [mailto:ea3cv@cronux.net ea3cv@cronux.net] April 2025&lt;/div&gt;</summary>
		<author><name>EA3CV</name></author>
	</entry>
	<entry>
		<id>https://wiki.dxcluster.org/w/index.php?title=DXSpider_Registration_Support_System&amp;diff=414</id>
		<title>DXSpider Registration Support System</title>
		<link rel="alternate" type="text/html" href="https://wiki.dxcluster.org/w/index.php?title=DXSpider_Registration_Support_System&amp;diff=414"/>
		<updated>2025-04-13T18:02:34Z</updated>

		<summary type="html">&lt;p&gt;EA3CV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= DXSpider Registration Support System =&lt;br /&gt;
&lt;br /&gt;
📡 &#039;&#039;&#039;DXSpider Registration Support System&#039;&#039;&#039; provides a user-friendly way for sysops to manage registration requests via &#039;&#039;&#039;email&#039;&#039;&#039; and/or &#039;&#039;&#039;Telegram&#039;&#039;&#039;, with clear messages and configurable templates in &#039;&#039;&#039;Spanish and English&#039;&#039;&#039; (default).&lt;br /&gt;
&lt;br /&gt;
== 📌 Purpose ==&lt;br /&gt;
&lt;br /&gt;
This system adds simple tools to support &#039;&#039;&#039;registration and password management&#039;&#039;&#039; on a DXSpider node. It allows users to send a request, and sysops to authorize or deny it with minimal effort, while keeping a record of all registration requests and their acceptance or denial.&lt;br /&gt;
&lt;br /&gt;
== ⚙️ Features ==&lt;br /&gt;
&lt;br /&gt;
* Users send requests via a simple command: &amp;lt;code&amp;gt;msg_sysop&amp;lt;/code&amp;gt;&lt;br /&gt;
* Sysops receive Telegram alerts and emails&lt;br /&gt;
* Sysops can approve (&amp;lt;code&amp;gt;auth_register&amp;lt;/code&amp;gt;) or reject (&amp;lt;code&amp;gt;deny_reg&amp;lt;/code&amp;gt;) registrations&lt;br /&gt;
* Sends multilingual confirmation/denial messages to users&lt;br /&gt;
* Configurable templates for email content (Spanish/English)&lt;br /&gt;
&lt;br /&gt;
== 📥 Commands Usage ==&lt;br /&gt;
&lt;br /&gt;
The system uses three main commands for managing user registrations:&lt;br /&gt;
&lt;br /&gt;
=== msg_sysop ===&lt;br /&gt;
Used by the user to send a registration request.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
msg_sysop &amp;lt;user_call&amp;gt; REGISTER &amp;lt;user_email&amp;gt; &amp;lt;comments&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
msg_sysop EA1ZZZ REGISTER ea1zzz@example.net I would like to join the cluster&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== auth_register ===&lt;br /&gt;
Used by the sysop to approve and register the user.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auth_reg &amp;lt;user_call&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auth_reg EA1ZZZ&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== deny_register ===&lt;br /&gt;
Used by the sysop to reject a registration request.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deny_reg &amp;lt;user_call&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deny_reg EA1ZZZ&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 📢 How It Works: Full Example ==&lt;br /&gt;
&lt;br /&gt;
=== REGISTRATION REQUEST (msg_sysop) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User input from Telnet:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
msg_sysop XX0ABC REGISTER xx0abc@domain.com Requesting access&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width:50%; vertical-align:top;&amp;quot; | Response to user&lt;br /&gt;
! style=&amp;quot;width:50%; vertical-align:top;&amp;quot; | To sysop via email&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Message sent to sysop.&lt;br /&gt;
   Call: XX0ABC&lt;br /&gt;
Subject: REGISTER&lt;br /&gt;
  Email: xx0abc@domain.com&lt;br /&gt;
Message: Requesting access&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Subject: Msg received from XX0ABC (REGISTER) to EA3CV-2&lt;br /&gt;
&lt;br /&gt;
New message via msg_sysop command:&lt;br /&gt;
&lt;br /&gt;
Node: EA3CV-2&lt;br /&gt;
Call: XX0ABC&lt;br /&gt;
Subject: REGISTER&lt;br /&gt;
Email: xx0abc@domain.com&lt;br /&gt;
IP: 1.2.3.4&lt;br /&gt;
Message: Requesting access&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;vertical-align:top;&amp;quot; | To user via email&lt;br /&gt;
! style=&amp;quot;vertical-align:top;&amp;quot; | To sysop via Telegram&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Asunto: Msg del sysop de / Msg from sysop of EA3CV-2&lt;br /&gt;
&lt;br /&gt;
En breve recibira una respuesta.&lt;br /&gt;
Saludos.&lt;br /&gt;
&lt;br /&gt;
You will receive a response shortly.&lt;br /&gt;
Regards,&lt;br /&gt;
&lt;br /&gt;
Kin EA3CV&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
📡 Message from DXSpider command:&lt;br /&gt;
Date: 13 April 2025 16:35:02&lt;br /&gt;
Call: XX0ABC&lt;br /&gt;
Subject: REGISTER&lt;br /&gt;
Email: xx0abc@domain.com&lt;br /&gt;
Sent by: EA3CV&lt;br /&gt;
IP: 1.2.3.4&lt;br /&gt;
Requesting access&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Entry in pending_reg.txt:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
20250413-163500,00000000-000000,PENDING ,XX0ABC,u$2wGVX=,1.2.3.4,xx0abc@domain.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== REGISTRATION APPROVAL (auth_register) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sysop input from Console:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auth_reg XX0ABC&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width:50%; vertical-align:top;&amp;quot; | Sysop output&lt;br /&gt;
! style=&amp;quot;width:50%; vertical-align:top;&amp;quot; | To user via email&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Registration completed for XX0ABC&lt;br /&gt;
Email: joaquin@cronux.net&lt;br /&gt;
IP:    127.0.0.1&lt;br /&gt;
Pass:  u$2wGVX=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Asunto: Aceptada su solicitud de registro / Registration accepted XX0ABC at EA3CV-2&lt;br /&gt;
&lt;br /&gt;
Se ha aceptado su solicitud de registro&lt;br /&gt;
&lt;br /&gt;
Usuario: XX0ABC&lt;br /&gt;
Password: u$2wGVX=&lt;br /&gt;
&lt;br /&gt;
Use el comando `set/password` para cambiar la contraseña si lo desea.&lt;br /&gt;
Disfrute.&lt;br /&gt;
&lt;br /&gt;
Your registration request has been approved.&lt;br /&gt;
&lt;br /&gt;
User: XX0ABC&lt;br /&gt;
Password: u$2wGVX=&lt;br /&gt;
&lt;br /&gt;
You can use the `set/password` command to change your password if you wish.&lt;br /&gt;
Enjoy.&lt;br /&gt;
&lt;br /&gt;
Kin EA3CV&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Entry in pending_reg.txt:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
20250413-163500,20250413-164558,ACCEPTED,XX0ABC,u$2wGVX=,1.2.3.4,xx0abc@domain.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== REGISTRATION DENIAL (deny_register) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sysop input from Console:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deny_reg XX0ABC&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width:50%; vertical-align:top;&amp;quot; | Sysop output&lt;br /&gt;
! style=&amp;quot;width:50%; vertical-align:top;&amp;quot; | To user via email&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Registration denied for XX0ABC&lt;br /&gt;
Email: joaquin@cronux.net&lt;br /&gt;
IP:    127.0.0.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Asunto: Denegada su solicitud de registro / Registration denied XX0ABC at EA3CV-2&lt;br /&gt;
&lt;br /&gt;
Se ha denegado su solicitud de registro.&lt;br /&gt;
&lt;br /&gt;
Si cree que esto es un error, puede contactar con el administrador.&lt;br /&gt;
Gracias.&lt;br /&gt;
&lt;br /&gt;
Your registration request has been denied.&lt;br /&gt;
&lt;br /&gt;
If you believe this is a mistake, please contact the administrator.&lt;br /&gt;
Thank you.&lt;br /&gt;
&lt;br /&gt;
Kin EA3CV&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;vertical-align:top;&amp;quot; | To sysop via Telegram&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
❌ DENIED registration of XX0ABC from 127.0.0.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Entry in pending_reg.txt:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
20250413-163500,20250413-165008,DENIED  ,XX0ABC,u$2wGVX=,1.2.3.4,xx0abc@domain.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 📂 Scripts Included ==&lt;br /&gt;
&lt;br /&gt;
All scripts go in &amp;lt;code&amp;gt;/spider/local_cmd/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/EA3CV/dxspider_info/blob/main/msg_sysop.pl msg_sysop.pl]&lt;br /&gt;
* [https://github.com/EA3CV/dxspider_info/blob/main/auth_register.pl auth_register.pl]&lt;br /&gt;
* [https://github.com/EA3CV/dxspider_info/blob/main/deny_register.pl deny_register.pl]&lt;br /&gt;
&lt;br /&gt;
Also required:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/EA3CV/dxspider_info/blob/main/Local.pm Local.pm] → to &amp;lt;code&amp;gt;/spider/local/Local.pm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 🧩 Configuration: DXVars.pm ==&lt;br /&gt;
&lt;br /&gt;
Append to &amp;lt;code&amp;gt;/spider/local/DXVars.pm&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
# Telegram config&lt;br /&gt;
$id = &amp;quot;123456789&amp;quot;;&lt;br /&gt;
$token = &amp;quot;123456789:ABCDEF-TOKEN&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Email SMTP config&lt;br /&gt;
$email_enable = 1;&lt;br /&gt;
$email_from = &#039;you@example.com&#039;;&lt;br /&gt;
$email_smtp = &#039;smtp.example.com&#039;;&lt;br /&gt;
$email_port = 587;      # Port 587 for STARTTLS/Port 465 for SSL)&lt;br /&gt;
$email_user = &#039;your_user&#039;;&lt;br /&gt;
$email_pass = &#039;your_pass&#039;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 📑 Files Used ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;/spider/local_data/pending_reg.txt&amp;lt;/code&amp;gt; — Automatically created&lt;br /&gt;
* &amp;lt;code&amp;gt;/spider/local_cmd/*.pl&amp;lt;/code&amp;gt; — Command scripts&lt;br /&gt;
* &amp;lt;code&amp;gt;/spider/local/Local.pm&amp;lt;/code&amp;gt; — Email &amp;amp; Telegram logic&lt;br /&gt;
* &amp;lt;code&amp;gt;/spider/local/DXvars.pm&amp;lt;/code&amp;gt; — Email and Telegram variables&lt;br /&gt;
&lt;br /&gt;
== 🔧 Installation ==&lt;br /&gt;
&lt;br /&gt;
# Copy the scripts to &amp;lt;code&amp;gt;/spider/local_cmd/&amp;lt;/code&amp;gt;&lt;br /&gt;
# Edit &amp;lt;code&amp;gt;/spider/local/DXVars.pm&amp;lt;/code&amp;gt; with your email and Telegram settings&lt;br /&gt;
# Install required Perl modules (see below)&lt;br /&gt;
# Restart the DXSpider node&lt;br /&gt;
&lt;br /&gt;
== 📦 Required Perl Modules ==&lt;br /&gt;
&lt;br /&gt;
Install with CPAN (from Linux shell):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cpan Net::SMTP&lt;br /&gt;
cpan Net::SMTP::SSL&lt;br /&gt;
cpan Net::MQTT::Simple&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ✏️ Template Customization ==&lt;br /&gt;
&lt;br /&gt;
Each script includes variables where you can &#039;&#039;&#039;modify the bilingual message content&#039;&#039;&#039;. Look for blocks like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
my $msg_text_ok = &amp;lt;&amp;lt;&amp;quot;EMAIL&amp;quot;;&lt;br /&gt;
...&lt;br /&gt;
EMAIL&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ✅ Commands Summary ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;msg_sysop&amp;lt;/code&amp;gt; || User sends registration request&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;auth_register&amp;lt;/code&amp;gt; || Sysop approves and registers the user&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;deny_reg&amp;lt;/code&amp;gt; || Sysop denies the request&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 👤 Author ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Kin EA3CV&#039;&#039;&#039; — [mailto:ea3cv@cronux.net ea3cv@cronux.net] April 2025&lt;/div&gt;</summary>
		<author><name>EA3CV</name></author>
	</entry>
	<entry>
		<id>https://wiki.dxcluster.org/w/index.php?title=DXSpider_Registration_Support_System&amp;diff=413</id>
		<title>DXSpider Registration Support System</title>
		<link rel="alternate" type="text/html" href="https://wiki.dxcluster.org/w/index.php?title=DXSpider_Registration_Support_System&amp;diff=413"/>
		<updated>2025-04-13T18:01:06Z</updated>

		<summary type="html">&lt;p&gt;EA3CV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= DXSpider Registration Support System =&lt;br /&gt;
&lt;br /&gt;
📡 &#039;&#039;&#039;DXSpider Registration Support System&#039;&#039;&#039; provides a user-friendly way for sysops to manage registration requests via &#039;&#039;&#039;email&#039;&#039;&#039; and/or &#039;&#039;&#039;Telegram&#039;&#039;&#039;, with clear messages and configurable templates in &#039;&#039;&#039;Spanish and English&#039;&#039;&#039; (default).&lt;br /&gt;
&lt;br /&gt;
== 📌 Purpose ==&lt;br /&gt;
&lt;br /&gt;
This system adds simple tools to support &#039;&#039;&#039;registration and password management&#039;&#039;&#039; on a DXSpider node. It allows users to send a request, and sysops to authorize or deny it with minimal effort, while keeping a record of all registration requests and their acceptance or denial.&lt;br /&gt;
&lt;br /&gt;
== ⚙️ Features ==&lt;br /&gt;
&lt;br /&gt;
* Users send requests via a simple command: &amp;lt;code&amp;gt;msg_sysop&amp;lt;/code&amp;gt;&lt;br /&gt;
* Sysops receive Telegram alerts and emails&lt;br /&gt;
* Sysops can approve (&amp;lt;code&amp;gt;auth_register&amp;lt;/code&amp;gt;) or reject (&amp;lt;code&amp;gt;deny_reg&amp;lt;/code&amp;gt;) registrations&lt;br /&gt;
* Sends multilingual confirmation/denial messages to users&lt;br /&gt;
* Configurable templates for email content (Spanish/English)&lt;br /&gt;
&lt;br /&gt;
== 📥 Commands Usage ==&lt;br /&gt;
&lt;br /&gt;
The system uses three main commands for managing user registrations:&lt;br /&gt;
&lt;br /&gt;
=== msg_sysop ===&lt;br /&gt;
Used by the user to send a registration request.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
msg_sysop &amp;lt;user_call&amp;gt; REGISTER &amp;lt;user_email&amp;gt; &amp;lt;comments&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
msg_sysop EA1ZZZ REGISTER ea1zzz@example.net I would like to join the cluster&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== auth_register ===&lt;br /&gt;
Used by the sysop to approve and register the user.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auth_reg &amp;lt;user_call&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auth_reg EA1ZZZ&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== deny_register ===&lt;br /&gt;
Used by the sysop to reject a registration request.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deny_reg &amp;lt;user_call&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deny_reg EA1ZZZ&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 📢 How It Works: Full Example ==&lt;br /&gt;
&lt;br /&gt;
=== REGISTRATION REQUEST (msg_sysop) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;User input from Telnet:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
msg_sysop XX0ABC REGISTER xx0abc@domain.com Requesting access&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width:50%; vertical-align:top;&amp;quot; | Response to user&lt;br /&gt;
! style=&amp;quot;width:50%; vertical-align:top;&amp;quot; | To sysop via email&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Message sent to sysop.&lt;br /&gt;
   Call: XX0ABC&lt;br /&gt;
Subject: REGISTER&lt;br /&gt;
  Email: xx0abc@domain.com&lt;br /&gt;
Message: Requesting access&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Subject: Msg received from XX0ABC (REGISTER) to EA3CV-2&lt;br /&gt;
&lt;br /&gt;
New message via msg_sysop command:&lt;br /&gt;
&lt;br /&gt;
Node: EA3CV-2&lt;br /&gt;
Call: XX0ABC&lt;br /&gt;
Subject: REGISTER&lt;br /&gt;
Email: xx0abc@domain.com&lt;br /&gt;
IP: 1.2.3.4&lt;br /&gt;
Message: Requesting access&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;vertical-align:top;&amp;quot; | To user via email&lt;br /&gt;
! style=&amp;quot;vertical-align:top;&amp;quot; | To sysop via Telegram&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Asunto: Msg del sysop de / Msg from sysop of EA3CV-2&lt;br /&gt;
&lt;br /&gt;
En breve recibira una respuesta.&lt;br /&gt;
Saludos.&lt;br /&gt;
&lt;br /&gt;
You will receive a response shortly.&lt;br /&gt;
Regards,&lt;br /&gt;
&lt;br /&gt;
Kin EA3CV&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
📡 Message from DXSpider command:&lt;br /&gt;
Date: 13 April 2025 16:35:02&lt;br /&gt;
Call: XX0ABC&lt;br /&gt;
Subject: REGISTER&lt;br /&gt;
Email: xx0abc@domain.com&lt;br /&gt;
Sent by: EA3CV&lt;br /&gt;
IP: 1.2.3.4&lt;br /&gt;
Requesting access&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Entry in pending_reg.txt:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
20250413-163500,00000000-000000,PENDING ,XX0ABC,u$2wGVX=,1.2.3.4,xx0abc@domain.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== REGISTRATION APPROVAL (auth_register) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sysop input from Console:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auth_reg XX0ABC&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width:50%; vertical-align:top;&amp;quot; | Sysop output&lt;br /&gt;
! style=&amp;quot;width:50%; vertical-align:top;&amp;quot; | To user via email&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Registration completed for XX0ABC&lt;br /&gt;
Email: joaquin@cronux.net&lt;br /&gt;
IP:    127.0.0.1&lt;br /&gt;
Pass:  u$2wGVX=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Asunto: Aceptada su solicitud de registro / Registration accepted XX0ABC at EA3CV-2&lt;br /&gt;
&lt;br /&gt;
Se ha aceptado su solicitud de registro&lt;br /&gt;
&lt;br /&gt;
Usuario: XX0ABC&lt;br /&gt;
Password: u$2wGVX=&lt;br /&gt;
&lt;br /&gt;
Use el comando `set/password` para cambiar la contraseña si lo desea.&lt;br /&gt;
Disfrute.&lt;br /&gt;
&lt;br /&gt;
Your registration request has been approved.&lt;br /&gt;
&lt;br /&gt;
User: XX0ABC&lt;br /&gt;
Password: u$2wGVX=&lt;br /&gt;
&lt;br /&gt;
You can use the `set/password` command to change your password if you wish.&lt;br /&gt;
Enjoy.&lt;br /&gt;
&lt;br /&gt;
Kin EA3CV&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Entry in pending_reg.txt:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
20250413-163500,20250413-164558,ACCEPTED,XX0ABC,u$2wGVX=,1.2.3.4,xx0abc@domain.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== REGISTRATION DENIAL (deny_register) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sysop input from Console:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deny_reg XX0ABC&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width:50%; vertical-align:top;&amp;quot; | Sysop output&lt;br /&gt;
! style=&amp;quot;width:50%; vertical-align:top;&amp;quot; | To user via email&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Registration denied for XX0ABC&lt;br /&gt;
Email: joaquin@cronux.net&lt;br /&gt;
IP:    127.0.0.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Asunto: Denegada su solicitud de registro / Registration denied XX0ABC at EA3CV-2&lt;br /&gt;
&lt;br /&gt;
Se ha denegado su solicitud de registro.&lt;br /&gt;
&lt;br /&gt;
Si cree que esto es un error, puede contactar con el administrador.&lt;br /&gt;
Gracias.&lt;br /&gt;
&lt;br /&gt;
Your registration request has been denied.&lt;br /&gt;
&lt;br /&gt;
If you believe this is a mistake, please contact the administrator.&lt;br /&gt;
Thank you.&lt;br /&gt;
&lt;br /&gt;
Kin EA3CV&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;vertical-align:top;&amp;quot; | To sysop via Telegram&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
❌ DENIED registration of XX0ABC from 127.0.0.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Entry in pending_reg.txt:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
20250413-163500,20250413-165008,DENIED  ,XX0ABC,u$2wGVX=,1.2.3.4,xx0abc@domain.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 📂 Scripts Included ==&lt;br /&gt;
&lt;br /&gt;
All scripts go in &amp;lt;code&amp;gt;/spider/local_cmd/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/EA3CV/dxspider_info/blob/main/msg_sysop.pl msg_sysop.pl]&lt;br /&gt;
* [https://github.com/EA3CV/dxspider_info/blob/main/auth_register.pl auth_register.pl]&lt;br /&gt;
* [https://github.com/EA3CV/dxspider_info/blob/main/deny_register.pl deny_register.pl]&lt;br /&gt;
&lt;br /&gt;
Also required:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/EA3CV/dxspider_info/blob/main/Local.pm Local.pm] → to &amp;lt;code&amp;gt;/spider/local/Local.pm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 🧩 Configuration: DXVars.pm ==&lt;br /&gt;
&lt;br /&gt;
Append to &amp;lt;code&amp;gt;/spider/local/DXVars.pm&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
# Telegram config&lt;br /&gt;
$id = &amp;quot;123456789&amp;quot;;&lt;br /&gt;
$token = &amp;quot;123456789:ABCDEF-TOKEN&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Email SMTP config&lt;br /&gt;
$email_enable = 1;&lt;br /&gt;
$email_from = &#039;you@example.com&#039;;&lt;br /&gt;
$email_smtp = &#039;smtp.example.com&#039;;&lt;br /&gt;
$email_port = 587;&lt;br /&gt;
$email_user = &#039;your_user&#039;;&lt;br /&gt;
$email_pass = &#039;your_pass&#039;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 📑 Files Used ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;/spider/local_data/pending_reg.txt&amp;lt;/code&amp;gt; — Automatically created&lt;br /&gt;
* &amp;lt;code&amp;gt;/spider/local_cmd/*.pl&amp;lt;/code&amp;gt; — Command scripts&lt;br /&gt;
* &amp;lt;code&amp;gt;/spider/local/Local.pm&amp;lt;/code&amp;gt; — Email &amp;amp; Telegram logic&lt;br /&gt;
* &amp;lt;code&amp;gt;/spider/local/DXvars.pm&amp;lt;/code&amp;gt; — Email and Telegram variables&lt;br /&gt;
&lt;br /&gt;
== 🔧 Installation ==&lt;br /&gt;
&lt;br /&gt;
# Copy the scripts to &amp;lt;code&amp;gt;/spider/local_cmd/&amp;lt;/code&amp;gt;&lt;br /&gt;
# Edit &amp;lt;code&amp;gt;/spider/local/DXVars.pm&amp;lt;/code&amp;gt; with your email and Telegram settings&lt;br /&gt;
# Install required Perl modules (see below)&lt;br /&gt;
# Restart the DXSpider node&lt;br /&gt;
&lt;br /&gt;
== 📦 Required Perl Modules ==&lt;br /&gt;
&lt;br /&gt;
Install with CPAN (from Linux shell):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cpan Net::SMTP&lt;br /&gt;
cpan Net::SMTP::SSL&lt;br /&gt;
cpan Net::MQTT::Simple&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ✏️ Template Customization ==&lt;br /&gt;
&lt;br /&gt;
Each script includes variables where you can &#039;&#039;&#039;modify the bilingual message content&#039;&#039;&#039;. Look for blocks like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
my $msg_text_ok = &amp;lt;&amp;lt;&amp;quot;EMAIL&amp;quot;;&lt;br /&gt;
...&lt;br /&gt;
EMAIL&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ✅ Commands Summary ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;msg_sysop&amp;lt;/code&amp;gt; || User sends registration request&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;auth_register&amp;lt;/code&amp;gt; || Sysop approves and registers the user&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;deny_reg&amp;lt;/code&amp;gt; || Sysop denies the request&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 👤 Author ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Kin EA3CV&#039;&#039;&#039; — [mailto:ea3cv@cronux.net ea3cv@cronux.net] April 2025&lt;/div&gt;</summary>
		<author><name>EA3CV</name></author>
	</entry>
	<entry>
		<id>https://wiki.dxcluster.org/w/index.php?title=DXSpider_Kin%27s_Helper_Script_Info&amp;diff=410</id>
		<title>DXSpider Kin&#039;s Helper Script Info</title>
		<link rel="alternate" type="text/html" href="https://wiki.dxcluster.org/w/index.php?title=DXSpider_Kin%27s_Helper_Script_Info&amp;diff=410"/>
		<updated>2025-04-11T17:59:23Z</updated>

		<summary type="html">&lt;p&gt;EA3CV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following are resources to help with Kin EA3CV&#039;s scripts on[https://github.com/EA3CV/dxspider%20info GitHub].&lt;br /&gt;
&lt;br /&gt;
* [https://wiki.dxcluster.org/wiki/Setting_up_the_EA3CV_contributions_repository Setting up the EA3CV contributions repository]&lt;br /&gt;
* [https://wiki.dxcluster.org/wiki/Updating_Public_IP_and/or_Local_IPs_(set/update_ip) Updating Public IP and/or/Local IPs]&lt;br /&gt;
* [https://wiki.dxcluster.org/wiki/List_of_nodes_for_mobile_use List of nodes for mobile use (mnodes)]&lt;br /&gt;
* [https://wiki.dxcluster.org/wiki/List_of_users_for_mobile_use List of users for mobile use (musers)]&lt;br /&gt;
* [https://wiki.dxcluster.org/wiki/Node_configuration_for_user_access Node configuration for user access]&lt;br /&gt;
* [https://wiki.dxcluster.org/wiki/Configure_node_with_Dynamic_IP_(Mojo_branch) Configure node with Dynamic IP]&lt;br /&gt;
* [https://wiki.dxcluster.org/wiki/Configure_Node_with_more_than_one_local_IP_(Mojo_branch) Configure Node with more than one local IP]&lt;br /&gt;
* [https://wiki.dxcluster.org/wiki/Create_a_secure_connection_between_nodes Create a secure connection between nodes]&lt;br /&gt;
* [https://wiki.dxcluster.org/wiki/DXSpider_MOJO_Version_Update_Script DXSpider MOJO Version Update Script]&lt;br /&gt;
* [https://wiki.dxcluster.org/wiki/Sending_messages_to_the_sysop_via_Telegram Sending messages to the sysop via Telegram ]&lt;br /&gt;
* [https://wiki.dxcluster.org/wiki/Node_Backup_and_Update_with_check_build Node Backup and Update with check_build ]&lt;br /&gt;
* [https://wiki.dxcluster.org/wiki/DXSpider_Registration_Support_System DXSpider Registration Support System]&lt;/div&gt;</summary>
		<author><name>EA3CV</name></author>
	</entry>
	<entry>
		<id>https://wiki.dxcluster.org/w/index.php?title=DXSpider_Registration_Support_System&amp;diff=409</id>
		<title>DXSpider Registration Support System</title>
		<link rel="alternate" type="text/html" href="https://wiki.dxcluster.org/w/index.php?title=DXSpider_Registration_Support_System&amp;diff=409"/>
		<updated>2025-04-11T17:13:43Z</updated>

		<summary type="html">&lt;p&gt;EA3CV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= DXSpider Registration Support System =&lt;br /&gt;
&lt;br /&gt;
📡 &#039;&#039;&#039;DXSpider Registration Support System&#039;&#039;&#039; provides a user-friendly way for sysops to manage registration requests via &#039;&#039;&#039;email&#039;&#039;&#039; and/or &#039;&#039;&#039;Telegram&#039;&#039;&#039;, with clear messages and configurable templates in &#039;&#039;&#039;Spanish and English&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== 📌 Purpose ==&lt;br /&gt;
&lt;br /&gt;
This system adds simple tools to support &#039;&#039;&#039;registration and password management&#039;&#039;&#039; on a DXSpider node. It allows users to send a request, and sysops to authorize or deny it with minimal effort.&lt;br /&gt;
&lt;br /&gt;
== ⚙️ Features ==&lt;br /&gt;
&lt;br /&gt;
* Users send requests via a simple command: &amp;lt;code&amp;gt;msg_sysop&amp;lt;/code&amp;gt;&lt;br /&gt;
* Sysops receive Telegram alerts and emails&lt;br /&gt;
* Sysops can approve (&amp;lt;code&amp;gt;auth_register&amp;lt;/code&amp;gt;) or reject (&amp;lt;code&amp;gt;deny_reg&amp;lt;/code&amp;gt;) registrations&lt;br /&gt;
* Sends multilingual confirmation/denial messages to users&lt;br /&gt;
* Configurable templates for email content (Spanish/English)&lt;br /&gt;
&lt;br /&gt;
== 💬 How It Works ==&lt;br /&gt;
&lt;br /&gt;
1. &#039;&#039;&#039;User&#039;&#039;&#039; sends a message:&lt;br /&gt;
   &amp;lt;pre&amp;gt;&lt;br /&gt;
   msg_sysop EA0ABC-2 REGISTER name@domain.net Registration request&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. &#039;&#039;&#039;Sysop receives:&#039;&#039;&#039;&lt;br /&gt;
   * 📧 Email with request details&lt;br /&gt;
   * 📱 Telegram notification (optional)&lt;br /&gt;
&lt;br /&gt;
3. &#039;&#039;&#039;Sysop approves:&#039;&#039;&#039;&lt;br /&gt;
   &amp;lt;pre&amp;gt;&lt;br /&gt;
   auth_register EA0ABC-2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. &#039;&#039;&#039;User receives confirmation email&#039;&#039;&#039;, e.g.:&lt;br /&gt;
   &amp;lt;pre&amp;gt;&lt;br /&gt;
   Subject: Registration accepted EA0ABC-2 at EA3CV-3&lt;br /&gt;
   User: EA0ABC-2&lt;br /&gt;
   Password: 5B54gqGz&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. &#039;&#039;&#039;Or sysop denies:&#039;&#039;&#039;&lt;br /&gt;
   &amp;lt;pre&amp;gt;&lt;br /&gt;
   deny_reg EA0ABC-2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. &#039;&#039;&#039;User receives denial notice&#039;&#039;&#039;, e.g.:&lt;br /&gt;
   &amp;lt;pre&amp;gt;&lt;br /&gt;
   Subject: Access request denied for EA0ABC-2 on EA3CV-3&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 📂 Scripts Included ==&lt;br /&gt;
&lt;br /&gt;
All scripts go in &amp;lt;code&amp;gt;/spider/local_cmd/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/EA3CV/dxspider_info/blob/main/msg_sysop.pl msg_sysop.pl]&lt;br /&gt;
* [https://github.com/EA3CV/dxspider_info/blob/main/auth_register.pl auth_register.pl]&lt;br /&gt;
* [https://github.com/EA3CV/dxspider_info/blob/main/deny_register.pl deny_register.pl]&lt;br /&gt;
&lt;br /&gt;
Also required:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/EA3CV/dxspider_info/blob/main/Local.pm Local.pm] → to &amp;lt;code&amp;gt;/spider/local/Local.pm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 🧩 Configuration: DXVars.pm ==&lt;br /&gt;
&lt;br /&gt;
Append to &amp;lt;code&amp;gt;/spider/local/DXVars.pm&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
# Telegram config&lt;br /&gt;
$id = &amp;quot;123456789&amp;quot;;&lt;br /&gt;
$token = &amp;quot;123456789:ABCDEF-TOKEN&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Email SMTP config&lt;br /&gt;
$email_enable = 1;&lt;br /&gt;
$email_from = &#039;you@example.com&#039;;&lt;br /&gt;
$email_smtp = &#039;smtp.example.com&#039;;&lt;br /&gt;
$email_port = 587;       # Port 587 for STARTTLS/Port 465 for SSL)&lt;br /&gt;
$email_user = &#039;your_user&#039;;&lt;br /&gt;
$email_pass = &#039;your_pass&#039;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 📑 Files Used ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;/spider/local_data/pending_reg.txt&amp;lt;/code&amp;gt; — Automatically created&lt;br /&gt;
* &amp;lt;code&amp;gt;/spider/local_cmd/*.pl&amp;lt;/code&amp;gt; — Command scripts&lt;br /&gt;
* &amp;lt;code&amp;gt;/spider/local/Local.pm&amp;lt;/code&amp;gt; — Email &amp;amp; Telegram logic&lt;br /&gt;
&lt;br /&gt;
== 🔧 Installation ==&lt;br /&gt;
&lt;br /&gt;
# Copy the scripts to &amp;lt;code&amp;gt;/spider/local_cmd/&amp;lt;/code&amp;gt;&lt;br /&gt;
# Edit &amp;lt;code&amp;gt;/spider/local/DXVars.pm&amp;lt;/code&amp;gt; with your email and Telegram settings&lt;br /&gt;
# Install required Perl modules (see below)&lt;br /&gt;
# Restart the DXSpider node&lt;br /&gt;
&lt;br /&gt;
== 📦 Required Perl Modules ==&lt;br /&gt;
&lt;br /&gt;
Install with CPAN (from Linux shell):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cpan Net::SMTP&lt;br /&gt;
cpan Net::SMTP::SSL&lt;br /&gt;
cpan Net::MQTT::Simple&lt;br /&gt;
cpan JSON&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ✏️ Template Customization ==&lt;br /&gt;
&lt;br /&gt;
Each script includes variables where you can &#039;&#039;&#039;modify the bilingual message content&#039;&#039;&#039;. Look for blocks like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
my $msg_text_ok = &amp;lt;&amp;lt;&amp;quot;EMAIL&amp;quot;;&lt;br /&gt;
...&lt;br /&gt;
EMAIL&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can change these to fit your tone and language.&lt;br /&gt;
&lt;br /&gt;
== 📧 Example Messages ==&lt;br /&gt;
&lt;br /&gt;
=== Request Received ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Subject: Message received for EA3CV-3 sysop&lt;br /&gt;
&lt;br /&gt;
En breve recibira una respuesta.&lt;br /&gt;
Saludos.&lt;br /&gt;
&lt;br /&gt;
You will receive a response shortly.&lt;br /&gt;
Regards,&lt;br /&gt;
&lt;br /&gt;
Kin EA3CV&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Confirmation Message ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Subject: Registration accepted EA0ABC-2 at EA3CV-3&lt;br /&gt;
&lt;br /&gt;
Se ha aceptado su solicitud de registro&lt;br /&gt;
&lt;br /&gt;
Usuario: EA0ABC-2&lt;br /&gt;
Password: 5B54gqGz&lt;br /&gt;
&lt;br /&gt;
Use el comando `set/password` para cambiar la contraseña si lo desea.&lt;br /&gt;
Disfrute.&lt;br /&gt;
&lt;br /&gt;
Your registration request has been approved.&lt;br /&gt;
&lt;br /&gt;
User: EA0ABC-2&lt;br /&gt;
Password: 5B54gqGz&lt;br /&gt;
&lt;br /&gt;
You can use the `set/password` command to change your password if you wish.&lt;br /&gt;
Enjoy.&lt;br /&gt;
&lt;br /&gt;
Kin EA3CV&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Denial Message ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Subject: Access request denied for EA0ABC-2 on EA3CV-3&lt;br /&gt;
&lt;br /&gt;
Lamentamos informarle que su solicitud de acceso para EA0ABC-2 ha sido denegada en EA3CV-3.&lt;br /&gt;
&lt;br /&gt;
No cumple con los criterios requeridos.&lt;br /&gt;
Puede intentarlo más adelante si lo desea.&lt;br /&gt;
&lt;br /&gt;
We regret to inform you that your access request for EA0ABC-2 has been denied on EA3CV-3.&lt;br /&gt;
&lt;br /&gt;
It does not meet the required criteria.&lt;br /&gt;
You may try again later if you wish.&lt;br /&gt;
&lt;br /&gt;
Kin EA3CV&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Telegram Notifications ===&lt;br /&gt;
&lt;br /&gt;
* Incoming request:&lt;br /&gt;
  &amp;lt;pre&amp;gt;&lt;br /&gt;
  📡 Message from DXSpider command:&lt;br /&gt;
  Call: EA0ABC-2&lt;br /&gt;
  Subject: REGISTER&lt;br /&gt;
  Email: name@domain.net&lt;br /&gt;
  Sent by: EA3CV&lt;br /&gt;
  IP: 1.2.3.4&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Approval:&lt;br /&gt;
  &amp;lt;pre&amp;gt;&lt;br /&gt;
  ✅ Registered EA0ABC-2 in EA3CV-3&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Denial:&lt;br /&gt;
  &amp;lt;pre&amp;gt;&lt;br /&gt;
  ❌ Registration denied for EA0ABC-2 on EA3CV-3&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ✅ Commands Summary ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;msg_sysop&amp;lt;/code&amp;gt; || User sends registration request (and anothers)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;auth_register&amp;lt;/code&amp;gt; || Sysop approves and registers the user&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;deny_reg&amp;lt;/code&amp;gt; || Sysop denies the request&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 👤 Author ==&lt;br /&gt;
&#039;&#039;&#039;Kin EA3CV&#039;&#039;&#039; — [mailto:ea3cv@cronux.net ea3cv@cronux.net] April 2025&lt;/div&gt;</summary>
		<author><name>EA3CV</name></author>
	</entry>
	<entry>
		<id>https://wiki.dxcluster.org/w/index.php?title=DXSpider_Registration_Support_System&amp;diff=408</id>
		<title>DXSpider Registration Support System</title>
		<link rel="alternate" type="text/html" href="https://wiki.dxcluster.org/w/index.php?title=DXSpider_Registration_Support_System&amp;diff=408"/>
		<updated>2025-04-11T17:08:33Z</updated>

		<summary type="html">&lt;p&gt;EA3CV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= DXSpider Registration Support System =&lt;br /&gt;
&lt;br /&gt;
📡 &#039;&#039;&#039;DXSpider Registration Support System&#039;&#039;&#039; provides a user-friendly way for sysops to manage registration requests via &#039;&#039;&#039;email&#039;&#039;&#039; and/or &#039;&#039;&#039;Telegram&#039;&#039;&#039;, with clear messages and configurable templates in &#039;&#039;&#039;Spanish and English&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== 📌 Purpose ==&lt;br /&gt;
&lt;br /&gt;
This system adds simple tools to support &#039;&#039;&#039;registration and password management&#039;&#039;&#039; on a DXSpider node. It allows users to send a request, and sysops to authorize or deny it with minimal effort.&lt;br /&gt;
&lt;br /&gt;
== ⚙️ Features ==&lt;br /&gt;
&lt;br /&gt;
* Users send requests via a simple command: &amp;lt;code&amp;gt;msg_sysop&amp;lt;/code&amp;gt;&lt;br /&gt;
* Sysops receive Telegram alerts and emails&lt;br /&gt;
* Sysops can approve (&amp;lt;code&amp;gt;auth_register&amp;lt;/code&amp;gt;) or reject (&amp;lt;code&amp;gt;deny_reg&amp;lt;/code&amp;gt;) registrations&lt;br /&gt;
* Sends multilingual confirmation/denial messages to users&lt;br /&gt;
* Configurable templates for email content (Spanish/English)&lt;br /&gt;
&lt;br /&gt;
== 💬 How It Works ==&lt;br /&gt;
&lt;br /&gt;
1. &#039;&#039;&#039;User&#039;&#039;&#039; sends a message:&lt;br /&gt;
   &amp;lt;pre&amp;gt;&lt;br /&gt;
   msg_sysop EA0ABC-2 REGISTER name@domain.net Registration request&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. &#039;&#039;&#039;Sysop receives:&#039;&#039;&#039;&lt;br /&gt;
   * 📧 Email with request details&lt;br /&gt;
   * 📱 Telegram notification (optional)&lt;br /&gt;
&lt;br /&gt;
3. &#039;&#039;&#039;Sysop approves:&#039;&#039;&#039;&lt;br /&gt;
   &amp;lt;pre&amp;gt;&lt;br /&gt;
   auth_register EA0ABC-2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. &#039;&#039;&#039;User receives confirmation email&#039;&#039;&#039;, e.g.:&lt;br /&gt;
   &amp;lt;pre&amp;gt;&lt;br /&gt;
   Subject: Registration accepted EA0ABC-2 at EA3CV-3&lt;br /&gt;
   User: EA0ABC-2&lt;br /&gt;
   Password: 5B54gqGz&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. &#039;&#039;&#039;Or sysop denies:&#039;&#039;&#039;&lt;br /&gt;
   &amp;lt;pre&amp;gt;&lt;br /&gt;
   deny_reg EA0ABC-2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. &#039;&#039;&#039;User receives denial notice&#039;&#039;&#039;, e.g.:&lt;br /&gt;
   &amp;lt;pre&amp;gt;&lt;br /&gt;
   Subject: Access request denied for EA0ABC-2 on EA3CV-3&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 📂 Scripts Included ==&lt;br /&gt;
&lt;br /&gt;
All scripts go in &amp;lt;code&amp;gt;/spider/local_cmd/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/EA3CV/dxspider_info/blob/main/msg_sysop.pl msg_sysop.pl]&lt;br /&gt;
* [https://github.com/EA3CV/dxspider_info/blob/main/auth_register.pl auth_register.pl]&lt;br /&gt;
* [https://github.com/EA3CV/dxspider_info/blob/main/deny_register.pl deny_register.pl]&lt;br /&gt;
&lt;br /&gt;
Also required:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/EA3CV/dxspider_info/blob/main/Local.pm Local.pm] → to &amp;lt;code&amp;gt;/spider/local/Local.pm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 🧩 Configuration: DXVars.pm ==&lt;br /&gt;
&lt;br /&gt;
Append to &amp;lt;code&amp;gt;/spider/local/DXVars.pm&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
# Telegram config&lt;br /&gt;
$id = &amp;quot;123456789&amp;quot;;&lt;br /&gt;
$token = &amp;quot;123456789:ABCDEF-TOKEN&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Email SMTP config&lt;br /&gt;
$email_enable = 1;&lt;br /&gt;
$email_from = &#039;you@example.com&#039;;&lt;br /&gt;
$email_smtp = &#039;smtp.example.com&#039;;&lt;br /&gt;
$email_port = 587;       # Port 587 for STARTTLS/Port 465 for SSL)&lt;br /&gt;
$email_user = &#039;your_user&#039;;&lt;br /&gt;
$email_pass = &#039;your_pass&#039;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 📑 Files Used ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;/spider/local_data/pending_reg.txt&amp;lt;/code&amp;gt; — Automatically created&lt;br /&gt;
* &amp;lt;code&amp;gt;/spider/local_cmd/*.pl&amp;lt;/code&amp;gt; — Command scripts&lt;br /&gt;
* &amp;lt;code&amp;gt;/spider/local/Local.pm&amp;lt;/code&amp;gt; — Email &amp;amp; Telegram logic&lt;br /&gt;
&lt;br /&gt;
== 🔧 Installation ==&lt;br /&gt;
&lt;br /&gt;
# Copy the scripts to &amp;lt;code&amp;gt;/spider/local_cmd/&amp;lt;/code&amp;gt;&lt;br /&gt;
# Edit &amp;lt;code&amp;gt;/spider/local/DXVars.pm&amp;lt;/code&amp;gt; with your email and Telegram settings&lt;br /&gt;
# Install required Perl modules (see below)&lt;br /&gt;
# Restart the DXSpider node&lt;br /&gt;
&lt;br /&gt;
== 📦 Required Perl Modules ==&lt;br /&gt;
&lt;br /&gt;
Install with CPAN (from Linux shell):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cpan Net::SMTP&lt;br /&gt;
cpan Net::SMTP::SSL&lt;br /&gt;
cpan Net::MQTT::Simple&lt;br /&gt;
cpan JSON&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ✏️ Template Customization ==&lt;br /&gt;
&lt;br /&gt;
Each script includes variables where you can &#039;&#039;&#039;modify the bilingual message content&#039;&#039;&#039;. Look for blocks like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
my $msg_text_ok = &amp;lt;&amp;lt;&amp;quot;EMAIL&amp;quot;;&lt;br /&gt;
...&lt;br /&gt;
EMAIL&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can change these to fit your tone and language.&lt;br /&gt;
&lt;br /&gt;
== 📧 Example Messages ==&lt;br /&gt;
&lt;br /&gt;
=== Request Received ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Subject: Message received for EA3CV-3 sysop&lt;br /&gt;
&lt;br /&gt;
En breve recibira una respuesta.&lt;br /&gt;
Saludos.&lt;br /&gt;
&lt;br /&gt;
You will receive a response shortly.&lt;br /&gt;
Regards,&lt;br /&gt;
&lt;br /&gt;
Kin EA3CV&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Confirmation Message ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Subject: Registration accepted EA0ABC-2 at EA3CV-3&lt;br /&gt;
&lt;br /&gt;
Se ha aceptado su solicitud de registro&lt;br /&gt;
&lt;br /&gt;
Usuario: EA0ABC-2&lt;br /&gt;
Password: 5B54gqGz&lt;br /&gt;
&lt;br /&gt;
Use el comando `set/password` para cambiar la contraseña si lo desea.&lt;br /&gt;
Disfrute.&lt;br /&gt;
&lt;br /&gt;
Your registration request has been approved.&lt;br /&gt;
&lt;br /&gt;
User: EA0ABC-2&lt;br /&gt;
Password: 5B54gqGz&lt;br /&gt;
&lt;br /&gt;
You can use the `set/password` command to change your password if you wish.&lt;br /&gt;
Enjoy.&lt;br /&gt;
&lt;br /&gt;
Kin EA3CV&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Denial Message ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Subject: Access request denied for EA0ABC-2 on EA3CV-3&lt;br /&gt;
&lt;br /&gt;
Lamentamos informarle que su solicitud de acceso para EA0ABC-2 ha sido denegada en EA3CV-3.&lt;br /&gt;
&lt;br /&gt;
No cumple con los criterios requeridos.&lt;br /&gt;
Puede intentarlo más adelante si lo desea.&lt;br /&gt;
&lt;br /&gt;
We regret to inform you that your access request for EA0ABC-2 has been denied on EA3CV-3.&lt;br /&gt;
&lt;br /&gt;
It does not meet the required criteria.&lt;br /&gt;
You may try again later if you wish.&lt;br /&gt;
&lt;br /&gt;
Kin EA3CV&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Telegram Notifications ===&lt;br /&gt;
&lt;br /&gt;
* Incoming request:&lt;br /&gt;
  &amp;lt;pre&amp;gt;&lt;br /&gt;
  📡 Message from DXSpider command:&lt;br /&gt;
  Call: EA0ABC-2&lt;br /&gt;
  Subject: REGISTER&lt;br /&gt;
  Email: name@domain.net&lt;br /&gt;
  Sent by: EA3CV&lt;br /&gt;
  IP: 1.2.3.4&lt;br /&gt;
  &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Approval:&lt;br /&gt;
  &amp;lt;pre&amp;gt;&lt;br /&gt;
  ✅ Registered EA0ABC-2 in EA3CV-3&lt;br /&gt;
  &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Denial:&lt;br /&gt;
  &amp;lt;pre&amp;gt;&lt;br /&gt;
  ❌ Registration denied for EA0ABC-2 on EA3CV-3&lt;br /&gt;
  &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ✅ Commands Summary ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;msg_sysop&amp;lt;/code&amp;gt; || User sends registration request (and anothers)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;auth_register&amp;lt;/code&amp;gt; || Sysop approves and registers the user&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;deny_reg&amp;lt;/code&amp;gt; || Sysop denies the request&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 👤 Author ==&lt;br /&gt;
&#039;&#039;&#039;Kin EA3CV&#039;&#039;&#039; — [mailto:ea3cv@cronux.net ea3cv@cronux.net] April 2025&lt;/div&gt;</summary>
		<author><name>EA3CV</name></author>
	</entry>
	<entry>
		<id>https://wiki.dxcluster.org/w/index.php?title=DXSpider_Registration_Support_System&amp;diff=407</id>
		<title>DXSpider Registration Support System</title>
		<link rel="alternate" type="text/html" href="https://wiki.dxcluster.org/w/index.php?title=DXSpider_Registration_Support_System&amp;diff=407"/>
		<updated>2025-04-11T17:04:00Z</updated>

		<summary type="html">&lt;p&gt;EA3CV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= DXSpider Registration Support System =&lt;br /&gt;
&lt;br /&gt;
📡 &#039;&#039;&#039;DXSpider Registration Support System&#039;&#039;&#039; provides a user-friendly way for sysops to manage registration requests via &#039;&#039;&#039;email&#039;&#039;&#039; and/or &#039;&#039;&#039;Telegram&#039;&#039;&#039;, with clear messages and configurable templates in &#039;&#039;&#039;Spanish and English&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== 📌 Purpose ==&lt;br /&gt;
&lt;br /&gt;
This system adds simple tools to support &#039;&#039;&#039;registration and password management&#039;&#039;&#039; on a DXSpider node. It allows users to send a request, and sysops to authorize or deny it with minimal effort.&lt;br /&gt;
&lt;br /&gt;
== ⚙️ Features ==&lt;br /&gt;
&lt;br /&gt;
* Users send requests via a simple command: &amp;lt;code&amp;gt;msg_sysop&amp;lt;/code&amp;gt;&lt;br /&gt;
* Sysops receive Telegram alerts and emails&lt;br /&gt;
* Sysops can approve (&amp;lt;code&amp;gt;auth_register&amp;lt;/code&amp;gt;) or reject (&amp;lt;code&amp;gt;deny_reg&amp;lt;/code&amp;gt;) registrations&lt;br /&gt;
* Sends multilingual confirmation/denial messages to users&lt;br /&gt;
* Configurable templates for email content (Spanish/English)&lt;br /&gt;
&lt;br /&gt;
== 💬 How It Works ==&lt;br /&gt;
&lt;br /&gt;
1. &#039;&#039;&#039;User&#039;&#039;&#039; sends a message:&lt;br /&gt;
   &amp;lt;pre&amp;gt;&lt;br /&gt;
   msg_sysop EA0ABC-2 REGISTER name@domain.net Registration request&lt;br /&gt;
   &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. &#039;&#039;&#039;Sysop receives:&#039;&#039;&#039;&lt;br /&gt;
   * 📧 Email with request details&lt;br /&gt;
   * 📱 Telegram notification (optional)&lt;br /&gt;
&lt;br /&gt;
3. &#039;&#039;&#039;Sysop approves:&#039;&#039;&#039;&lt;br /&gt;
   &amp;lt;pre&amp;gt;&lt;br /&gt;
   auth_register EA0ABC-2&lt;br /&gt;
   &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. &#039;&#039;&#039;User receives confirmation email&#039;&#039;&#039;, e.g.:&lt;br /&gt;
   &amp;lt;pre&amp;gt;&lt;br /&gt;
   Subject: Registration accepted EA0ABC-2 at EA3CV-3&lt;br /&gt;
   User: EA0ABC-2&lt;br /&gt;
   Password: 5B54gqGz&lt;br /&gt;
   &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. &#039;&#039;&#039;Or sysop denies:&#039;&#039;&#039;&lt;br /&gt;
   &amp;lt;pre&amp;gt;&lt;br /&gt;
   deny_reg EA0ABC-2&lt;br /&gt;
   &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. &#039;&#039;&#039;User receives denial notice&#039;&#039;&#039;, e.g.:&lt;br /&gt;
   &amp;lt;pre&amp;gt;&lt;br /&gt;
   Subject: Access request denied for EA0ABC-2 on EA3CV-3&lt;br /&gt;
   &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 📂 Scripts Included ==&lt;br /&gt;
&lt;br /&gt;
All scripts go in &amp;lt;code&amp;gt;/spider/local_cmd/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/EA3CV/dxspider_info/blob/main/msg_sysop.pl msg_sysop.pl]&lt;br /&gt;
* [https://github.com/EA3CV/dxspider_info/blob/main/auth_register.pl auth_register.pl]&lt;br /&gt;
* [https://github.com/EA3CV/dxspider_info/blob/main/deny_register.pl deny_register.pl]&lt;br /&gt;
&lt;br /&gt;
Also required:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/EA3CV/dxspider_info/blob/main/Local.pm Local.pm] → to &amp;lt;code&amp;gt;/spider/local/Local.pm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 🧩 Configuration: DXVars.pm ==&lt;br /&gt;
&lt;br /&gt;
Append to &amp;lt;code&amp;gt;/spider/local/DXVars.pm&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
# Telegram config&lt;br /&gt;
$id = &amp;quot;123456789&amp;quot;;&lt;br /&gt;
$token = &amp;quot;123456789:ABCDEF-TOKEN&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Email SMTP config&lt;br /&gt;
$email_enable = 1;&lt;br /&gt;
$email_from = &#039;you@example.com&#039;;&lt;br /&gt;
$email_smtp = &#039;smtp.example.com&#039;;&lt;br /&gt;
$email_port = 587;       # Port 587 for STARTTLS/Port 465 for SSL)&lt;br /&gt;
$email_user = &#039;your_user&#039;;&lt;br /&gt;
$email_pass = &#039;your_pass&#039;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 📑 Files Used ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;/spider/local_data/pending_reg.txt&amp;lt;/code&amp;gt; — Automatically created&lt;br /&gt;
* &amp;lt;code&amp;gt;/spider/local_cmd/*.pl&amp;lt;/code&amp;gt; — Command scripts&lt;br /&gt;
* &amp;lt;code&amp;gt;/spider/local/Local.pm&amp;lt;/code&amp;gt; — Email &amp;amp; Telegram logic&lt;br /&gt;
&lt;br /&gt;
== 🔧 Installation ==&lt;br /&gt;
&lt;br /&gt;
1. Copy the scripts to &amp;lt;code&amp;gt;/spider/local_cmd/&amp;lt;/code&amp;gt;&lt;br /&gt;
2. Edit &amp;lt;code&amp;gt;/spider/local/DXVars.pm&amp;lt;/code&amp;gt; with your email and Telegram settings&lt;br /&gt;
3. Install required Perl modules (see below)&lt;br /&gt;
4. Restart the DXSpider node&lt;br /&gt;
&lt;br /&gt;
== 📦 Required Perl Modules ==&lt;br /&gt;
&lt;br /&gt;
Install with CPAN (from Linux shell):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cpan Net::SMTP&lt;br /&gt;
cpan Net::SMTP::SSL&lt;br /&gt;
cpan Net::MQTT::Simple&lt;br /&gt;
cpan JSON&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ✏️ Template Customization ==&lt;br /&gt;
&lt;br /&gt;
Each script includes variables where you can &#039;&#039;&#039;modify the bilingual message content&#039;&#039;&#039;. Look for blocks like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
my $msg_text_ok = &amp;lt;&amp;lt;&amp;quot;EMAIL&amp;quot;;&lt;br /&gt;
...&lt;br /&gt;
EMAIL&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can change these to fit your tone and language.&lt;br /&gt;
&lt;br /&gt;
== 📧 Example Messages ==&lt;br /&gt;
&lt;br /&gt;
=== Request Received ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Subject: Message received for EA3CV-3 sysop&lt;br /&gt;
&lt;br /&gt;
En breve recibira una respuesta.&lt;br /&gt;
Saludos.&lt;br /&gt;
&lt;br /&gt;
You will receive a response shortly.&lt;br /&gt;
Regards,&lt;br /&gt;
&lt;br /&gt;
Kin EA3CV&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Confirmation Message ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Subject: Registration accepted EA0ABC-2 at EA3CV-3&lt;br /&gt;
&lt;br /&gt;
Se ha aceptado su solicitud de registro&lt;br /&gt;
&lt;br /&gt;
Usuario: EA0ABC-2&lt;br /&gt;
Password: 5B54gqGz&lt;br /&gt;
&lt;br /&gt;
Use el comando `set/password` para cambiar la contraseña si lo desea.&lt;br /&gt;
Disfrute.&lt;br /&gt;
&lt;br /&gt;
Your registration request has been approved.&lt;br /&gt;
&lt;br /&gt;
User: EA0ABC-2&lt;br /&gt;
Password: 5B54gqGz&lt;br /&gt;
&lt;br /&gt;
You can use the `set/password` command to change your password if you wish.&lt;br /&gt;
Enjoy.&lt;br /&gt;
&lt;br /&gt;
Kin EA3CV&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Denial Message ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Subject: Access request denied for EA0ABC-2 on EA3CV-3&lt;br /&gt;
&lt;br /&gt;
Lamentamos informarle que su solicitud de acceso para EA0ABC-2 ha sido denegada en EA3CV-3.&lt;br /&gt;
&lt;br /&gt;
No cumple con los criterios requeridos.&lt;br /&gt;
Puede intentarlo más adelante si lo desea.&lt;br /&gt;
&lt;br /&gt;
We regret to inform you that your access request for EA0ABC-2 has been denied on EA3CV-3.&lt;br /&gt;
&lt;br /&gt;
It does not meet the required criteria.&lt;br /&gt;
You may try again later if you wish.&lt;br /&gt;
&lt;br /&gt;
Kin EA3CV&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Telegram Notifications ===&lt;br /&gt;
&lt;br /&gt;
* Incoming request:&lt;br /&gt;
  &amp;lt;pre&amp;gt;&lt;br /&gt;
  📡 Message from DXSpider command:&lt;br /&gt;
  Call: EA0ABC-2&lt;br /&gt;
  Subject: REGISTER&lt;br /&gt;
  Email: name@domain.net&lt;br /&gt;
  Sent by: EA3CV&lt;br /&gt;
  IP: 1.2.3.4&lt;br /&gt;
  &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Approval:&lt;br /&gt;
  &amp;lt;pre&amp;gt;&lt;br /&gt;
  ✅ Registered EA0ABC-2 in EA3CV-3&lt;br /&gt;
  &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Denial:&lt;br /&gt;
  &amp;lt;pre&amp;gt;&lt;br /&gt;
  ❌ Registration denied for EA0ABC-2 on EA3CV-3&lt;br /&gt;
  &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ✅ Commands Summary ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;msg_sysop&amp;lt;/code&amp;gt; || User sends registration request&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;auth_register&amp;lt;/code&amp;gt; || Sysop approves and registers the user&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;deny_reg&amp;lt;/code&amp;gt; || Sysop denies the request&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 👤 Author ==&lt;br /&gt;
&#039;&#039;&#039;Kin EA3CV&#039;&#039;&#039; — [mailto:ea3cv@cronux.net ea3cv@cronux.net] April 2025&lt;/div&gt;</summary>
		<author><name>EA3CV</name></author>
	</entry>
	<entry>
		<id>https://wiki.dxcluster.org/w/index.php?title=DXSpider_Registration_Support_System&amp;diff=406</id>
		<title>DXSpider Registration Support System</title>
		<link rel="alternate" type="text/html" href="https://wiki.dxcluster.org/w/index.php?title=DXSpider_Registration_Support_System&amp;diff=406"/>
		<updated>2025-04-11T16:56:08Z</updated>

		<summary type="html">&lt;p&gt;EA3CV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= DXSpider Registration &amp;amp; Password Assistant System =&lt;br /&gt;
📌 &#039;&#039;&#039;Purpose&#039;&#039;&#039; This system provides a user-friendly assistant for managing user registrations and passwords in DXSpider. It includes:&lt;br /&gt;
&lt;br /&gt;
- 📬 Sending bilingual emails (Spanish/English) to users. - 📲 Optional Telegram notifications to the sysop. - ⚙️ Three modular commands that can work independently or as a complete workflow:&lt;br /&gt;
  - `msg_sysop`&lt;br /&gt;
  - `auth_register`&lt;br /&gt;
  - `deny_register`&lt;br /&gt;
All user-facing text (email bodies, etc.) is editable for customization.&lt;br /&gt;
&lt;br /&gt;
== 🧰 Included Commands ==&lt;br /&gt;
&lt;br /&gt;
=== msg_sysop.pl ===&lt;br /&gt;
- Sends a message from a user to the sysop via email and/or Telegram. - Optionally adds the user to a pending registration list if subject includes `REGISTER`.&lt;br /&gt;
&lt;br /&gt;
=== auth_register.pl ===&lt;br /&gt;
- Authorizes a user in `pending_reg.txt`. - Registers the user in DXSpider. - Sends a bilingual welcome email with username/password. - Sends a Telegram notification to the sysop.&lt;br /&gt;
&lt;br /&gt;
=== deny_register.pl ===&lt;br /&gt;
- Denies a user registration from `pending_reg.txt`. - Sends a bilingual rejection email to the user. - Sends a Telegram notification to the sysop.&lt;br /&gt;
&lt;br /&gt;
== 📄 How to Use ==&lt;br /&gt;
=== From the DXSpider shell:&lt;br /&gt;
 Send a registration request:&lt;br /&gt;
   msg_sysop EA0ABC-2 REGISTER name@domain.net Registration request&lt;br /&gt;
&lt;br /&gt;
 Authorize a registration:&lt;br /&gt;
   auth_register EA0ABC-2&lt;br /&gt;
&lt;br /&gt;
 Deny a registration:&lt;br /&gt;
   deny_register EA0ABC-2&lt;br /&gt;
&lt;br /&gt;
== 📦 Requirements ==&lt;br /&gt;
=== DXVars.pm Located at: `/spider/local/DXVars.pm`&lt;br /&gt;
&lt;br /&gt;
You must include at the bottom (before `1;`) the following configuration:&lt;br /&gt;
&lt;br /&gt;
```perl&lt;br /&gt;
&lt;br /&gt;
# Telegram config&lt;br /&gt;
&lt;br /&gt;
$id = &amp;quot;123456789&amp;quot;;                       # Your Telegram chat ID $token = &amp;quot;123456789:ABCdEfGhIjKlmNo&amp;quot;;    # Telegram bot token&lt;br /&gt;
&lt;br /&gt;
# Email SMTP config&lt;br /&gt;
&lt;br /&gt;
$email_enable = 1; $email_from = &#039;sysop@example.net&#039;; $email_smtp = &#039;smtp.provider.net&#039;; $email_port = 587;                       # 587 for STARTTLS or 465 for SSL $email_user = &#039;smtpuser@example.net&#039;; $email_pass = &#039;smtppassword&#039;; ```&lt;br /&gt;
&lt;br /&gt;
=== Local.pm File: `/spider/local/Local.pm`&lt;br /&gt;
&lt;br /&gt;
📥 Download: https://github.com/EA3CV/dxspider_info/blob/main/Local.pm&lt;br /&gt;
&lt;br /&gt;
== 🔧 Installation&lt;br /&gt;
&lt;br /&gt;
1. Download the scripts:&lt;br /&gt;
&lt;br /&gt;
```text /spider/local_cmd/msg_sysop.pl /spider/local_cmd/auth_register.pl /spider/local_cmd/deny_register.pl ```&lt;br /&gt;
&lt;br /&gt;
📥 Download them from:&lt;br /&gt;
&lt;br /&gt;
- https://github.com/EA3CV/dxspider_info/blob/main/msg_sysop.pl - https://github.com/EA3CV/dxspider_info/blob/main/auth_register.pl - https://github.com/EA3CV/dxspider_info/blob/main/deny_register.pl&lt;br /&gt;
&lt;br /&gt;
2. Make sure `/spider/local/Local.pm` is updated.&lt;br /&gt;
&lt;br /&gt;
3. Restart DXSpider: ```bash ./cluster.pl restart ```&lt;br /&gt;
&lt;br /&gt;
== 🧩 Required Perl Modules&lt;br /&gt;
&lt;br /&gt;
Install the following modules using `cpan`:&lt;br /&gt;
&lt;br /&gt;
```bash cpan JSON cpan Net::MQTT::Simple cpan Net::SMTP cpan Net::SMTP::SSL ```&lt;br /&gt;
&lt;br /&gt;
== 📂 Files Used&lt;br /&gt;
&lt;br /&gt;
- `/spider/local_cmd/msg_sysop.pl` - `/spider/local_cmd/auth_register.pl` - `/spider/local_cmd/deny_register.pl` - `/spider/local/Local.pm` - `/spider/local_data/pending_reg.txt` (created automatically)&lt;br /&gt;
&lt;br /&gt;
== ✉️ Emails Sent to Users&lt;br /&gt;
&lt;br /&gt;
=== Message confirmation: _Subject_: Message received for EA3CV-3 sysop&lt;br /&gt;
&lt;br /&gt;
``` En breve recibira una respuesta. Saludos.&lt;br /&gt;
&lt;br /&gt;
You will receive a response shortly. Regards,&lt;br /&gt;
&lt;br /&gt;
Kin EA3CV ```&lt;br /&gt;
&lt;br /&gt;
=== Welcome after auth_register: _Subject_: Aceptada su solicitud de registro / Registration accepted EA0ABC-2 at EA3CV-3&lt;br /&gt;
&lt;br /&gt;
``` Se ha aceptado su solicitud de registro&lt;br /&gt;
&lt;br /&gt;
Usuario: EA0ABC-2 Password: 5B54gqGz&lt;br /&gt;
&lt;br /&gt;
Use el comando `set/password` para cambiar la contraseña si lo desea. Disfrute.&lt;br /&gt;
&lt;br /&gt;
Your registration request has been approved.&lt;br /&gt;
&lt;br /&gt;
User: EA0ABC-2 Password: 5B54gqGz&lt;br /&gt;
&lt;br /&gt;
You can use the `set/password` command to change your password if you wish. Enjoy.&lt;br /&gt;
&lt;br /&gt;
Kin EA3CV ```&lt;br /&gt;
&lt;br /&gt;
=== Rejection after deny_register: _Subject_: Solicitud de acceso denegada / Access request denied for EA0ABC-2 on EA3CV-3&lt;br /&gt;
&lt;br /&gt;
``` Lamentamos informarle que su solicitud de acceso para EA0ABC-2 ha sido denegada en EA3CV-3.&lt;br /&gt;
&lt;br /&gt;
No cumple con los criterios requeridos. Puede intentarlo más adelante si lo desea.&lt;br /&gt;
&lt;br /&gt;
We regret to inform you that your access request for EA0ABC-2 has been denied on EA3CV-3.&lt;br /&gt;
&lt;br /&gt;
It does not meet the required criteria. You may try again later if you wish.&lt;br /&gt;
&lt;br /&gt;
Kin EA3CV ```&lt;br /&gt;
&lt;br /&gt;
== 📲 Telegram Messages (to sysop)&lt;br /&gt;
&lt;br /&gt;
From msg_sysop:&lt;br /&gt;
&lt;br /&gt;
``` 📡 Message from DXSpider command: Call: EA0ABC-2 Subject: REGISTER Email: name@domain.net Sent by: EA3CV IP: 1.2.3.4&lt;br /&gt;
&lt;br /&gt;
Registration request ```&lt;br /&gt;
&lt;br /&gt;
From auth_register:&lt;br /&gt;
&lt;br /&gt;
``` ✅ Registered EA0ABC-2 in EA3CV-3 ```&lt;br /&gt;
&lt;br /&gt;
From deny_register:&lt;br /&gt;
&lt;br /&gt;
``` ❌ Registration denied for EA0ABC-2 on EA3CV-3 ```&lt;br /&gt;
&lt;br /&gt;
== 📑 Command Outputs (user view)&lt;br /&gt;
&lt;br /&gt;
From `msg_sysop`:&lt;br /&gt;
&lt;br /&gt;
``` Message sent to sysop.&lt;br /&gt;
   Call: EA0ABC-2&lt;br /&gt;
Subject: REGISTER&lt;br /&gt;
  Email: name@domain.net&lt;br /&gt;
Message: Registration request ```&lt;br /&gt;
&lt;br /&gt;
From `auth_register`:&lt;br /&gt;
&lt;br /&gt;
``` ✔️ Registration completed for EA0ABC-2&lt;br /&gt;
   Email: name@domain.net&lt;br /&gt;
   IP:    1.2.3.4&lt;br /&gt;
   Pass:  5B54gqGz&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
From `deny_register`:&lt;br /&gt;
&lt;br /&gt;
``` ✔️ Registration denied for EA0ABC-2&lt;br /&gt;
   Email: name@domain.net&lt;br /&gt;
   IP:    1.2.3.4&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
== ✏️ Customizing Texts&lt;br /&gt;
&lt;br /&gt;
Each script includes a section at the beginning where you can edit the bilingual email content. Modify these strings to suit your cluster style or tone.&lt;br /&gt;
&lt;br /&gt;
== 👤 Author&lt;br /&gt;
&lt;br /&gt;
📧 Kin EA3CV — [ea3cv@cronux.net](mailto:ea3cv@cronux.net)  April 2025&lt;/div&gt;</summary>
		<author><name>EA3CV</name></author>
	</entry>
	<entry>
		<id>https://wiki.dxcluster.org/w/index.php?title=DXSpider_Registration_Support_System&amp;diff=405</id>
		<title>DXSpider Registration Support System</title>
		<link rel="alternate" type="text/html" href="https://wiki.dxcluster.org/w/index.php?title=DXSpider_Registration_Support_System&amp;diff=405"/>
		<updated>2025-04-11T16:51:46Z</updated>

		<summary type="html">&lt;p&gt;EA3CV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= DXSpider Registration Support System =&lt;br /&gt;
📡 **DXSpider Registration Support System** provides a user-friendly way for sysops to manage registration requests via **email** and/or **Telegram**, with clear messages and configurable templates in **Spanish and English**.&lt;br /&gt;
&lt;br /&gt;
== 📌 Purpose ==&lt;br /&gt;
This system adds simple tools to support **registration and password management** on a DXSpider node. It allows users to send a request, and sysops to authorize or deny it with minimal effort.&lt;br /&gt;
&lt;br /&gt;
== ⚙️ Features ==&lt;br /&gt;
&lt;br /&gt;
* Users send requests via a simple command: `msg_sysop`&lt;br /&gt;
* Sysops receive Telegram alerts and emails&lt;br /&gt;
* Sysops can approve (`auth_register`) or reject (`deny_reg`) registrations&lt;br /&gt;
* Sends multilingual confirmation/denial messages to users&lt;br /&gt;
* Fully configurable templates for email content&lt;br /&gt;
&lt;br /&gt;
== 💬 How It Works ==&lt;br /&gt;
1. **User** sends a message from telnet:&lt;br /&gt;
    ```&lt;br /&gt;
    msg_sysop EA0ABC-2 REGISTER name@domain.net Registration request&lt;br /&gt;
    ```&lt;br /&gt;
2. **Sysop receives:**&lt;br /&gt;
   * 📧 Email with request details&lt;br /&gt;
   * 📱 Telegram notification (optional)&lt;br /&gt;
3. **Sysop approves from console:**&lt;br /&gt;
    ```&lt;br /&gt;
    auth_register EA0ABC-2&lt;br /&gt;
    ```&lt;br /&gt;
4. **User receives confirmation email**, e.g.:&lt;br /&gt;
    ```&lt;br /&gt;
    Subject: Registration accepted EA0ABC-2 at EA3CV-3&lt;br /&gt;
    User: EA0ABC-2&lt;br /&gt;
    Password: 5B54gqGz&lt;br /&gt;
    ```&lt;br /&gt;
5. **Or sysop denies from console:**&lt;br /&gt;
    ```&lt;br /&gt;
    deny_reg EA0ABC-2&lt;br /&gt;
    ```&lt;br /&gt;
6. **User receives denial notice**, e.g.:&lt;br /&gt;
    ```&lt;br /&gt;
    Subject: Access request denied for EA0ABC-2 on EA3CV-3&lt;br /&gt;
    ```&lt;br /&gt;
&lt;br /&gt;
== 📂 Scripts Included ==&lt;br /&gt;
All scripts go in `/spider/local_cmd/`&lt;br /&gt;
&lt;br /&gt;
* [`msg_sysop.pl`](https://github.com/EA3CV/dxspider_info/blob/main/msg_sysop.pl)&lt;br /&gt;
* [`auth_register.pl`](https://github.com/EA3CV/dxspider_info/blob/main/auth_register.pl)&lt;br /&gt;
* [`deny_register.pl`](https://github.com/EA3CV/dxspider_info/blob/main/deny_register.pl)&lt;br /&gt;
&lt;br /&gt;
Also required:&lt;br /&gt;
&lt;br /&gt;
* [`Local.pm`](https://github.com/EA3CV/dxspider_info/blob/main/Local.pm) → to `/spider/local/Local.pm`&lt;br /&gt;
&lt;br /&gt;
== 🧩 Configuration: DXVars.pm ==&lt;br /&gt;
Append to `/spider/local/DXVars.pm`:&lt;br /&gt;
&lt;br /&gt;
```perl&lt;br /&gt;
&lt;br /&gt;
# Telegram config&lt;br /&gt;
&lt;br /&gt;
$id = &amp;quot;123456789&amp;quot;; $token = &amp;quot;123456789:ABCDEF-TOKEN&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Email SMTP config&lt;br /&gt;
&lt;br /&gt;
$email_enable = 1;&lt;br /&gt;
&lt;br /&gt;
$email_from = &#039;you@example.com&#039;; &lt;br /&gt;
&lt;br /&gt;
$email_smtp = &#039;smtp.example.com&#039;; &lt;br /&gt;
&lt;br /&gt;
$email_port = 587;             # Use 465 for SSL &lt;br /&gt;
&lt;br /&gt;
$email_user = &#039;your_user&#039;; &lt;br /&gt;
&lt;br /&gt;
$email_pass = &#039;your_pass&#039;; ```&lt;br /&gt;
&lt;br /&gt;
== 📑 Files Used ==&lt;br /&gt;
&lt;br /&gt;
* `/spider/local_data/pending_reg.txt` — Automatically created&lt;br /&gt;
* `/spider/local_cmd/*.pl` — Command scripts&lt;br /&gt;
* `/spider/local/Local.pm` — Email &amp;amp; Telegram logic&lt;br /&gt;
&lt;br /&gt;
== 🔧 Installation ==&lt;br /&gt;
1. Copy the scripts to `/spider/local_cmd/` &lt;br /&gt;
&lt;br /&gt;
2. Edit `/spider/local/DXVars.pm` with your email and Telegram settings &lt;br /&gt;
&lt;br /&gt;
3. Install required Perl modules (see below) 4. Restart the DXSpider node&lt;br /&gt;
&lt;br /&gt;
== 📦 Required Perl Modules ==&lt;br /&gt;
Install with CPAN (or cpanm from Linux shell):&lt;br /&gt;
&lt;br /&gt;
```cpan Net::SMTP  Net::SMTP::SSL  Net::MQTT::Simple  ```&lt;br /&gt;
&lt;br /&gt;
== ✏️ Template Customization ==&lt;br /&gt;
Each script includes variables where you can **modify the bilingual message content**. Look for blocks like:&lt;br /&gt;
&lt;br /&gt;
```perl my $msg_text_ok = &amp;lt;&amp;lt;&amp;quot;EMAIL&amp;quot;; ... EMAIL ```&lt;br /&gt;
&lt;br /&gt;
You can easily customize the tone and language to suit your needs.&lt;br /&gt;
&lt;br /&gt;
== 📧 Example Messages ==&lt;br /&gt;
&lt;br /&gt;
=== Request Message ===&lt;br /&gt;
``` msg_sysop EA0ABC-2 REGISTER name@domain.net Registration request ```&lt;br /&gt;
&lt;br /&gt;
=== Email to User (Request Received) ===&lt;br /&gt;
``` Subject: Message received for EA3CV-3 sysop&lt;br /&gt;
&lt;br /&gt;
En breve recibira una respuesta. Saludos.&lt;br /&gt;
&lt;br /&gt;
You will receive a response shortly. Regards,&lt;br /&gt;
&lt;br /&gt;
Kin EA3CV ```&lt;br /&gt;
&lt;br /&gt;
=== Email to User (Accepted) ===&lt;br /&gt;
``` Subject: Registration accepted EA0ABC-2 at EA3CV-3&lt;br /&gt;
&lt;br /&gt;
Se ha aceptado su solicitud de registro&lt;br /&gt;
&lt;br /&gt;
Usuario: EA0ABC-2 Password: 5B54gqGz&lt;br /&gt;
&lt;br /&gt;
Use el comando `set/password` para cambiar la contraseña si lo desea.&lt;br /&gt;
&lt;br /&gt;
Your registration request has been approved.&lt;br /&gt;
&lt;br /&gt;
User: EA0ABC-2 Password: 5B54gqGz&lt;br /&gt;
&lt;br /&gt;
You can use the `set/password` command to change your password if you wish. Enjoy.&lt;br /&gt;
&lt;br /&gt;
Kin EA3CV ```&lt;br /&gt;
&lt;br /&gt;
=== Email to User (Denied) ===&lt;br /&gt;
``` Subject: Access request denied for EA0ABC-2 on EA3CV-3&lt;br /&gt;
&lt;br /&gt;
Lamentamos informarle que su solicitud de acceso para EA0ABC-2 ha sido denegada en EA3CV-3.&lt;br /&gt;
&lt;br /&gt;
No cumple con los criterios requeridos. Puede intentarlo más adelante si lo desea.&lt;br /&gt;
&lt;br /&gt;
We regret to inform you that your access request for EA0ABC-2 has been denied on EA3CV-3.&lt;br /&gt;
&lt;br /&gt;
It does not meet the required criteria. You may try again later if you wish.&lt;br /&gt;
&lt;br /&gt;
Kin EA3CV ```&lt;br /&gt;
&lt;br /&gt;
=== Telegram ===&lt;br /&gt;
&lt;br /&gt;
* Incoming request:&lt;br /&gt;
&lt;br /&gt;
  ```&lt;br /&gt;
  📡 Message from DXSpider command:&lt;br /&gt;
  Call: EA0ABC-2&lt;br /&gt;
  Subject: REGISTER&lt;br /&gt;
  Email: name@domain.net&lt;br /&gt;
  Sent by: EA3CV&lt;br /&gt;
  IP: 1.2.3.4&lt;br /&gt;
  ```&lt;br /&gt;
&lt;br /&gt;
* Approval:&lt;br /&gt;
&lt;br /&gt;
  ```&lt;br /&gt;
  ✅ Registered EA0ABC-2 in EA3CV-3&lt;br /&gt;
  ```&lt;br /&gt;
&lt;br /&gt;
* Denial:&lt;br /&gt;
&lt;br /&gt;
  ```&lt;br /&gt;
  ❌ Registration denied for EA0ABC-2 on EA3CV-3&lt;br /&gt;
  ```&lt;br /&gt;
&lt;br /&gt;
== ✅ Commands Summary ==&lt;br /&gt;
| Command           | Description                        | &lt;br /&gt;
&lt;br /&gt;
|------------------|------------------------------------|&lt;br /&gt;
&lt;br /&gt;
| msg_sysop        | User sends request                 |&lt;br /&gt;
&lt;br /&gt;
| auth_register    | Sysop approves registration        |&lt;br /&gt;
&lt;br /&gt;
| deny_reg         | Sysop denies registration          |&lt;br /&gt;
&lt;br /&gt;
== 👤 Author ==&lt;br /&gt;
Kin EA3CV — [ea3cv@cronux.net](mailto:ea3cv@cronux.net)  April 2025&lt;/div&gt;</summary>
		<author><name>EA3CV</name></author>
	</entry>
	<entry>
		<id>https://wiki.dxcluster.org/w/index.php?title=DXSpider_Registration_Support_System&amp;diff=404</id>
		<title>DXSpider Registration Support System</title>
		<link rel="alternate" type="text/html" href="https://wiki.dxcluster.org/w/index.php?title=DXSpider_Registration_Support_System&amp;diff=404"/>
		<updated>2025-04-11T16:50:08Z</updated>

		<summary type="html">&lt;p&gt;EA3CV: Created page with &amp;quot; = DXSpider Registration Support System = 📡 **DXSpider Registration Support System** provides a user-friendly way for sysops to manage registration requests via **email** and/or **Telegram**, with clear messages and configurable templates in **Spanish and English**.  == 📌 Purpose == This system adds simple tools to support **registration and password management** on a DXSpider node. It allows users to send a request, and sysops to authorize or deny it with minimal...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= DXSpider Registration Support System =&lt;br /&gt;
📡 **DXSpider Registration Support System** provides a user-friendly way for sysops to manage registration requests via **email** and/or **Telegram**, with clear messages and configurable templates in **Spanish and English**.&lt;br /&gt;
&lt;br /&gt;
== 📌 Purpose ==&lt;br /&gt;
This system adds simple tools to support **registration and password management** on a DXSpider node. It allows users to send a request, and sysops to authorize or deny it with minimal effort.&lt;br /&gt;
&lt;br /&gt;
== ⚙️ Features ==&lt;br /&gt;
&lt;br /&gt;
* Users send requests via a simple command: `msg_sysop`&lt;br /&gt;
* Sysops receive Telegram alerts and emails&lt;br /&gt;
* Sysops can approve (`auth_register`) or reject (`deny_reg`) registrations&lt;br /&gt;
* Sends multilingual confirmation/denial messages to users&lt;br /&gt;
* Fully configurable templates for email content&lt;br /&gt;
&lt;br /&gt;
== 💬 How It Works ==&lt;br /&gt;
1. **User** sends a message from telnet:&lt;br /&gt;
    ```&lt;br /&gt;
    msg_sysop EA0ABC-2 REGISTER name@domain.net Registration request&lt;br /&gt;
    ```&lt;br /&gt;
2. **Sysop receives:**&lt;br /&gt;
   * 📧 Email with request details&lt;br /&gt;
   * 📱 Telegram notification (optional)&lt;br /&gt;
3. **Sysop approves from console:**&lt;br /&gt;
    ```&lt;br /&gt;
    auth_register EA0ABC-2&lt;br /&gt;
    ```&lt;br /&gt;
4. **User receives confirmation email**, e.g.:&lt;br /&gt;
    ```&lt;br /&gt;
    Subject: Registration accepted EA0ABC-2 at EA3CV-3&lt;br /&gt;
    User: EA0ABC-2&lt;br /&gt;
    Password: 5B54gqGz&lt;br /&gt;
    ```&lt;br /&gt;
5. **Or sysop denies from console:**&lt;br /&gt;
    ```&lt;br /&gt;
    deny_reg EA0ABC-2&lt;br /&gt;
    ```&lt;br /&gt;
6. **User receives denial notice**, e.g.:&lt;br /&gt;
    ```&lt;br /&gt;
    Subject: Access request denied for EA0ABC-2 on EA3CV-3&lt;br /&gt;
    ```&lt;br /&gt;
&lt;br /&gt;
== 📂 Scripts Included ==&lt;br /&gt;
All scripts go in `/spider/local_cmd/`&lt;br /&gt;
&lt;br /&gt;
* [`msg_sysop.pl`](https://github.com/EA3CV/dxspider_info/blob/main/msg_sysop.pl)&lt;br /&gt;
* [`auth_register.pl`](https://github.com/EA3CV/dxspider_info/blob/main/auth_register.pl)&lt;br /&gt;
* [`deny_register.pl`](https://github.com/EA3CV/dxspider_info/blob/main/deny_register.pl)&lt;br /&gt;
&lt;br /&gt;
Also required:&lt;br /&gt;
&lt;br /&gt;
* [`Local.pm`](https://github.com/EA3CV/dxspider_info/blob/main/Local.pm) → to `/spider/local/Local.pm`&lt;br /&gt;
&lt;br /&gt;
== 🧩 Configuration: DXVars.pm ==&lt;br /&gt;
Append to `/spider/local/DXVars.pm`:&lt;br /&gt;
&lt;br /&gt;
```perl&lt;br /&gt;
&lt;br /&gt;
# Telegram config&lt;br /&gt;
&lt;br /&gt;
$id = &amp;quot;123456789&amp;quot;; $token = &amp;quot;123456789:ABCDEF-TOKEN&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Email SMTP config&lt;br /&gt;
&lt;br /&gt;
$email_enable = 1;&lt;br /&gt;
&lt;br /&gt;
$email_from = &#039;you@example.com&#039;; &lt;br /&gt;
&lt;br /&gt;
$email_smtp = &#039;smtp.example.com&#039;; &lt;br /&gt;
&lt;br /&gt;
$email_port = 587;             # Use 465 for SSL &lt;br /&gt;
&lt;br /&gt;
$email_user = &#039;your_user&#039;; &lt;br /&gt;
&lt;br /&gt;
$email_pass = &#039;your_pass&#039;; ```&lt;br /&gt;
&lt;br /&gt;
== 📑 Files Used ==&lt;br /&gt;
&lt;br /&gt;
* `/spider/local_data/pending_reg.txt` — Automatically created&lt;br /&gt;
* `/spider/local_cmd/*.pl` — Command scripts&lt;br /&gt;
* `/spider/local/Local.pm` — Email &amp;amp; Telegram logic&lt;br /&gt;
&lt;br /&gt;
== 🔧 Installation ==&lt;br /&gt;
1. Copy the scripts to `/spider/local_cmd/` &lt;br /&gt;
&lt;br /&gt;
2. Edit `/spider/local/DXVars.pm` with your email and Telegram settings &lt;br /&gt;
&lt;br /&gt;
3. Install required Perl modules (see below) 4. Restart the DXSpider node&lt;br /&gt;
&lt;br /&gt;
== 📦 Required Perl Modules ==&lt;br /&gt;
Install with CPAN (or cpanm from Linux shell):&lt;br /&gt;
&lt;br /&gt;
```cpan Net::SMTP  Net::SMTP::SSL  Net::MQTT::Simple  ```&lt;br /&gt;
&lt;br /&gt;
== ✏️ Template Customization ==&lt;br /&gt;
Each script includes variables where you can **modify the bilingual message content**. Look for blocks like:&lt;br /&gt;
&lt;br /&gt;
```perl my $msg_text_ok = &amp;lt;&amp;lt;&amp;quot;EMAIL&amp;quot;; ... EMAIL ```&lt;br /&gt;
&lt;br /&gt;
You can easily customize the tone and language to suit your needs.&lt;br /&gt;
&lt;br /&gt;
== 📧 Example Messages ==&lt;br /&gt;
&lt;br /&gt;
=== Request Message ===&lt;br /&gt;
``` msg_sysop EA0ABC-2 REGISTER name@domain.net Registration request ```&lt;br /&gt;
&lt;br /&gt;
=== Email to User (Request Received) ===&lt;br /&gt;
``` Subject: Message received for EA3CV-3 sysop&lt;br /&gt;
&lt;br /&gt;
En breve recibira una respuesta. Saludos.&lt;br /&gt;
&lt;br /&gt;
You will receive a response shortly. Regards,&lt;br /&gt;
&lt;br /&gt;
Kin EA3CV ```&lt;br /&gt;
&lt;br /&gt;
=== Email to User (Accepted) ===&lt;br /&gt;
``` Subject: Registration accepted EA0ABC-2 at EA3CV-3&lt;br /&gt;
&lt;br /&gt;
Se ha aceptado su solicitud de registro&lt;br /&gt;
&lt;br /&gt;
Usuario: EA0ABC-2 Password: 5B54gqGz&lt;br /&gt;
&lt;br /&gt;
Use el comando `set/password` para cambiar la contraseña si lo desea.&lt;br /&gt;
&lt;br /&gt;
Your registration request has been approved.&lt;br /&gt;
&lt;br /&gt;
User: EA0ABC-2 Password: 5B54gqGz&lt;br /&gt;
&lt;br /&gt;
You can use the `set/password` command to change your password if you wish. Enjoy.&lt;br /&gt;
&lt;br /&gt;
Kin EA3CV ```&lt;br /&gt;
&lt;br /&gt;
=== Email to User (Denied) ===&lt;br /&gt;
``` Subject: Access request denied for EA0ABC-2 on EA3CV-3&lt;br /&gt;
&lt;br /&gt;
Lamentamos informarle que su solicitud de acceso para EA0ABC-2 ha sido denegada en EA3CV-3.&lt;br /&gt;
&lt;br /&gt;
No cumple con los criterios requeridos. Puede intentarlo más adelante si lo desea.&lt;br /&gt;
&lt;br /&gt;
We regret to inform you that your access request for EA0ABC-2 has been denied on EA3CV-3.&lt;br /&gt;
&lt;br /&gt;
It does not meet the required criteria. You may try again later if you wish.&lt;br /&gt;
&lt;br /&gt;
Kin EA3CV ```&lt;br /&gt;
&lt;br /&gt;
=== Telegram ===&lt;br /&gt;
&lt;br /&gt;
* Incoming request:&lt;br /&gt;
&lt;br /&gt;
  ```&lt;br /&gt;
  📡 Message from DXSpider command:&lt;br /&gt;
  Call: EA0ABC-2&lt;br /&gt;
  Subject: REGISTER&lt;br /&gt;
  Email: name@domain.net&lt;br /&gt;
  Sent by: EA3CV&lt;br /&gt;
  IP: 1.2.3.4&lt;br /&gt;
  ```&lt;br /&gt;
&lt;br /&gt;
* Approval:&lt;br /&gt;
&lt;br /&gt;
  ```&lt;br /&gt;
  ✅ Registered EA0ABC-2 in EA3CV-3&lt;br /&gt;
  ```&lt;br /&gt;
&lt;br /&gt;
* Denial:&lt;br /&gt;
&lt;br /&gt;
  ```&lt;br /&gt;
  ❌ Registration denied for EA0ABC-2 on EA3CV-3&lt;br /&gt;
  ```&lt;br /&gt;
&lt;br /&gt;
== ✅ Commands Summary ==&lt;br /&gt;
| Command           | Description                        | |------------------|------------------------------------| | msg_sysop        | User sends request                 | | auth_register    | Sysop approves registration        | | deny_reg         | Sysop denies registration          |&lt;br /&gt;
&lt;br /&gt;
== 👤 Author ==&lt;br /&gt;
Kin EA3CV — [ea3cv@cronux.net](mailto:ea3cv@cronux.net)  April 2025&lt;/div&gt;</summary>
		<author><name>EA3CV</name></author>
	</entry>
	<entry>
		<id>https://wiki.dxcluster.org/w/index.php?title=DXSpider_Kin%27s_Helper_Script_Info&amp;diff=385</id>
		<title>DXSpider Kin&#039;s Helper Script Info</title>
		<link rel="alternate" type="text/html" href="https://wiki.dxcluster.org/w/index.php?title=DXSpider_Kin%27s_Helper_Script_Info&amp;diff=385"/>
		<updated>2025-04-09T16:56:24Z</updated>

		<summary type="html">&lt;p&gt;EA3CV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following are resources to help with Kin&#039;s scripts.&lt;br /&gt;
&lt;br /&gt;
* [https://wiki.dxcluster.org/wiki/Updating_Public_IP_and/or_Local_IPs_(set/update_ip) Updating Public IP and/or/Local IPs]&lt;br /&gt;
* [https://wiki.dxcluster.org/wiki/List_of_nodes_for_mobile_use List of nodes for mobile use (mnodes)]&lt;br /&gt;
* [https://wiki.dxcluster.org/wiki/List_of_users_for_mobile_use List of users for mobile use (musers)]&lt;br /&gt;
* Setting up the EA3CV contributions repository[https://wiki.dxcluster.org/wiki/Setting_up_the_EA3CV_contributions_repository )]&lt;br /&gt;
* Node configuration for user access[https://wiki.dxcluster.org/wiki/Node_configuration_for_user_access )]&lt;br /&gt;
* Configure node with Dynamic IP[https://wiki.dxcluster.org/wiki/Configure_node_with_Dynamic_IP_(Mojo_branch) )]&lt;br /&gt;
* Configure Node with more than one local IP[https://wiki.dxcluster.org/wiki/Configure_Node_with_more_than_one_local_IP_(Mojo_branch) )]&lt;br /&gt;
* Create a secure connection between nodes[https://wiki.dxcluster.org/wiki/Create_a_secure_connection_between_nodes )]&lt;br /&gt;
* DXSpider MOJO Version Update Script[https://wiki.dxcluster.org/wiki/DXSpider_MOJO_Version_Update_Script )]&lt;br /&gt;
* Sending messages to the sysop via Telegram [https://wiki.dxcluster.org/wiki/Sending_messages_to_the_sysop_via_Telegram]&lt;br /&gt;
* Node Backup and Update with check_build [https://wiki.dxcluster.org/wiki/Node_Backup_and_Update_with_check_build]&lt;/div&gt;</summary>
		<author><name>EA3CV</name></author>
	</entry>
	<entry>
		<id>https://wiki.dxcluster.org/w/index.php?title=Node_Backup_and_Update_with_check_build&amp;diff=384</id>
		<title>Node Backup and Update with check build</title>
		<link rel="alternate" type="text/html" href="https://wiki.dxcluster.org/w/index.php?title=Node_Backup_and_Update_with_check_build&amp;diff=384"/>
		<updated>2025-04-09T16:55:40Z</updated>

		<summary type="html">&lt;p&gt;EA3CV: Created page with &amp;quot; = 🛠️ Node Backup and Update with check_build =  == 📋 Description == The `check_build` command is a DXSpider utility script that checks for new builds (updates) in the MOJO branch. If a new build is available, it can:  * Perform a full backup of the current node installation * Retain previous backup archives * Automatically update the node (Git hard reset + pull)  This tool does not aim to replace the standard `git` update method, but is especially useful for sys...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= 🛠️ Node Backup and Update with check_build =&lt;br /&gt;
&lt;br /&gt;
== 📋 Description ==&lt;br /&gt;
The `check_build` command is a DXSpider utility script that checks for new builds (updates) in the MOJO branch. If a new build is available, it can:&lt;br /&gt;
&lt;br /&gt;
* Perform a full backup of the current node installation&lt;br /&gt;
* Retain previous backup archives&lt;br /&gt;
* Automatically update the node (Git hard reset + pull)&lt;br /&gt;
&lt;br /&gt;
This tool does not aim to replace the standard `git` update method, but is especially useful for sysops who are cautious about updates potentially breaking their nodes. In case of failure, a full backup ensures the service can be restored quickly.&lt;br /&gt;
&lt;br /&gt;
The script can be run manually from the DXSpider shell or scheduled via `crontab`.&lt;br /&gt;
&lt;br /&gt;
== ⚙️ Features ==&lt;br /&gt;
&lt;br /&gt;
* Verifies if a newer build is available on the remote repository.&lt;br /&gt;
* If backup is enabled:&lt;br /&gt;
** Creates a full backup using `rsync`&lt;br /&gt;
** Compresses it as `spider.YYYYMMDD.HHMMSS.tar.gz`&lt;br /&gt;
** Retains up to a configurable number of backup files&lt;br /&gt;
* Performs a full Git reset and update&lt;br /&gt;
* Optionally notifies via Telegram if configured&lt;br /&gt;
&lt;br /&gt;
== ▶️ Usage ==&lt;br /&gt;
From the DXSpider shell:&amp;lt;pre&amp;gt;&lt;br /&gt;
check_build &amp;lt;Y/N&amp;gt; &amp;lt;num_backups&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;Where:&lt;br /&gt;
&lt;br /&gt;
* `Y` = Enable backup before updating&lt;br /&gt;
* `N` = Update without backup&lt;br /&gt;
* `num_backups` = Number of backups to retain (default: 10)&lt;br /&gt;
&lt;br /&gt;
== 🕒 Example crontab configuration ==&lt;br /&gt;
Run the command Monday to Friday at 04:00 with backup enabled, keeping 7 backups:&amp;lt;pre&amp;gt;&lt;br /&gt;
0 4 * * 1,2,3,4,5 run_cmd(&amp;quot;check_build Y 7&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;Update the script daily (thanks to G6NHU) with:&amp;lt;pre&amp;gt;&lt;br /&gt;
30 0 * * * spawn(&#039;cd /spider/local_cmd; wget -qN https://raw.githubusercontent.com/EA3CV/dxspider_info/main/check_build.pl -O /spider/local_cmd/check_build.pl&#039;)&lt;br /&gt;
32 0 * * * run_cmd(&#039;load/cmd&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 💾 Installation ==&lt;br /&gt;
Download the script from the official repository:&lt;br /&gt;
&lt;br /&gt;
[https://github.com/EA3CV/dxspider_info/blob/main/check_build.pl View on GitHub - check_build.pl]&lt;br /&gt;
&lt;br /&gt;
Save it as:&amp;lt;pre&amp;gt;&lt;br /&gt;
/spider/local_cmd/check_build.pl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 🔄 Restoring a backup ==&lt;br /&gt;
If something goes wrong during the update:&lt;br /&gt;
&lt;br /&gt;
1. Locate the latest backup archive in `/home/sysop/spider.backup` &lt;br /&gt;
&lt;br /&gt;
2. Decompress it:&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/sysop&lt;br /&gt;
tar -xzvf spider.backup/spider.YYYYMMDD.HHMMSS.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;3. Replace the current `/spider` directory with the extracted backup&lt;br /&gt;
&lt;br /&gt;
4. Restart DXSpider&lt;br /&gt;
&lt;br /&gt;
== ⏪ Alternative: Using undo_newbuild.pl ==&lt;br /&gt;
If installed, the `undo_newbuild.pl` script allows you to quickly restore the most recent backup made by `check_build`.&lt;br /&gt;
&lt;br /&gt;
Simply run:&amp;lt;pre&amp;gt;&lt;br /&gt;
set/undo_newbuild&lt;br /&gt;
&amp;lt;/pre&amp;gt;This command will:&lt;br /&gt;
&lt;br /&gt;
* Locate the latest backup archive in `/home/sysop/spider.backup`&lt;br /&gt;
* Decompress and restore it&lt;br /&gt;
* Restart the node automatically&lt;br /&gt;
&lt;br /&gt;
=== 📥 Download ===&lt;br /&gt;
You can download the script from the repository:&lt;br /&gt;
&lt;br /&gt;
[https://github.com/EA3CV/dxspider_info/blob/main/undo_newbuild.pl View on GitHub - undo_newbuild.pl]&lt;br /&gt;
&lt;br /&gt;
Save it as:&amp;lt;pre&amp;gt;&lt;br /&gt;
/spider/local_cmd/undo_newbuild.pl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 📦 Dependencies ==&lt;br /&gt;
This script requires:&lt;br /&gt;
&lt;br /&gt;
* Git&lt;br /&gt;
* rsync&lt;br /&gt;
&lt;br /&gt;
To install `rsync` on Debian-based systems:&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install rsync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 📲 Telegram integration (optional) ==&lt;br /&gt;
If the `telegram()` function is defined in `Local.pm` and Telegram bot variables (`$id`, `$token`) are set in `DXVars.pm`, the script will send notifications when:&lt;br /&gt;
&lt;br /&gt;
* A backup starts&lt;br /&gt;
* A backup completes&lt;br /&gt;
&lt;br /&gt;
For full setup instructions, see:  [https://wiki.dxcluster.org/wiki/Sending_messages_to_the_sysop_via_Telegram Sending messages to the sysop via Telegram]&lt;br /&gt;
&lt;br /&gt;
== 🧠 Notes ==&lt;br /&gt;
&lt;br /&gt;
* Only supports the **MOJO branch** of DXSpider.&lt;br /&gt;
* Backup directory: `/home/sysop/spider.backup`&lt;br /&gt;
* Automatically excludes heavy folders: debug logs, spots, wwv, wcy, etc.&lt;br /&gt;
* Recommended for sysops who want to automate update and backup tasks with minimal risk.&lt;br /&gt;
&lt;br /&gt;
== 👨‍💻 Author ==&lt;br /&gt;
&lt;br /&gt;
* Kin EA3CV* — [mailto:ea3cv@cronux.net](mailto:ea3cv@cronux.net)&lt;/div&gt;</summary>
		<author><name>EA3CV</name></author>
	</entry>
	<entry>
		<id>https://wiki.dxcluster.org/w/index.php?title=DXSpider_Kin%27s_Helper_Script_Info&amp;diff=383</id>
		<title>DXSpider Kin&#039;s Helper Script Info</title>
		<link rel="alternate" type="text/html" href="https://wiki.dxcluster.org/w/index.php?title=DXSpider_Kin%27s_Helper_Script_Info&amp;diff=383"/>
		<updated>2025-04-09T16:08:09Z</updated>

		<summary type="html">&lt;p&gt;EA3CV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following are resources to help with Kin&#039;s scripts.&lt;br /&gt;
&lt;br /&gt;
* [https://wiki.dxcluster.org/wiki/Updating_Public_IP_and/or_Local_IPs_(set/update_ip) Updating Public IP and/or/Local IPs]&lt;br /&gt;
* [https://wiki.dxcluster.org/wiki/List_of_nodes_for_mobile_use List of nodes for mobile use (mnodes)]&lt;br /&gt;
* [https://wiki.dxcluster.org/wiki/List_of_users_for_mobile_use List of users for mobile use (musers)]&lt;br /&gt;
* Setting up the EA3CV contributions repository[https://wiki.dxcluster.org/wiki/Setting_up_the_EA3CV_contributions_repository )]&lt;br /&gt;
* Node configuration for user access[https://wiki.dxcluster.org/wiki/Node_configuration_for_user_access )]&lt;br /&gt;
* Configure node with Dynamic IP[https://wiki.dxcluster.org/wiki/Configure_node_with_Dynamic_IP_(Mojo_branch) )]&lt;br /&gt;
* Configure Node with more than one local IP[https://wiki.dxcluster.org/wiki/Configure_Node_with_more_than_one_local_IP_(Mojo_branch) )]&lt;br /&gt;
* Create a secure connection between nodes[https://wiki.dxcluster.org/wiki/Create_a_secure_connection_between_nodes )]&lt;br /&gt;
* DXSpider MOJO Version Update Script[https://wiki.dxcluster.org/wiki/DXSpider_MOJO_Version_Update_Script )]&lt;br /&gt;
* Sending messages to the sysop via Telegram [https://wiki.dxcluster.org/wiki/Sending_messages_to_the_sysop_via_Telegram]&lt;/div&gt;</summary>
		<author><name>EA3CV</name></author>
	</entry>
	<entry>
		<id>https://wiki.dxcluster.org/w/index.php?title=Sending_messages_to_the_sysop_via_Telegram&amp;diff=382</id>
		<title>Sending messages to the sysop via Telegram</title>
		<link rel="alternate" type="text/html" href="https://wiki.dxcluster.org/w/index.php?title=Sending_messages_to_the_sysop_via_Telegram&amp;diff=382"/>
		<updated>2025-04-09T16:07:06Z</updated>

		<summary type="html">&lt;p&gt;EA3CV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= 📡 Sending messages to the sysop via Telegram =&lt;br /&gt;
&lt;br /&gt;
== 📋 Description ==&lt;br /&gt;
The `msg_sysop` command allows users connected to a DXSpider node to send a direct message to the sysop via Telegram.&lt;br /&gt;
&lt;br /&gt;
It is useful for:&lt;br /&gt;
&lt;br /&gt;
* Requesting registration on the node&lt;br /&gt;
* Reporting issues or failures&lt;br /&gt;
* Making general enquiries&lt;br /&gt;
&lt;br /&gt;
The message includes the following data:&lt;br /&gt;
&lt;br /&gt;
* User callsign&lt;br /&gt;
* Subject (e.g. REGISTER, PROBLEM, INFO)&lt;br /&gt;
* Email address&lt;br /&gt;
* Message text&lt;br /&gt;
* Access IP&lt;br /&gt;
&lt;br /&gt;
== ▶️ Command usage ==&lt;br /&gt;
From the DXSpider shell:&amp;lt;pre&amp;gt;&lt;br /&gt;
msg_sysop &amp;lt;CALL&amp;gt; &amp;lt;SUBJECT&amp;gt; &amp;lt;EMAIL&amp;gt; &amp;lt;MESSAGE&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set/msg_sysop XX0ABC REGISTER xx0abc@example.com Requesting registration&lt;br /&gt;
set/msg_sysop XX0ABC PROBLEM xx0abc@example.com My password is not working&lt;br /&gt;
set/msg_sysop XX0ABC-1 INFO xx0abc@example.com Greetings from DM42&lt;br /&gt;
&amp;lt;/pre&amp;gt;The user will receive a confirmation, and the sysop will receive the complete message via Telegram.&lt;br /&gt;
&lt;br /&gt;
== ⚙️ Required configuration ==&lt;br /&gt;
To use the `msg_sysop` command, minimal setup is needed for the Telegram bot.&lt;br /&gt;
&lt;br /&gt;
=== 📁 File: /spider/local/Local.pm ===&lt;br /&gt;
Add the following to the end of the file, just before the final `1;`:&amp;lt;pre&amp;gt;&lt;br /&gt;
sub telegram&lt;br /&gt;
{&lt;br /&gt;
    my $payload = shift;&lt;br /&gt;
&lt;br /&gt;
    my $url = &amp;quot;https://api.telegram.org/bot$main::token/sendMessage&amp;quot;;&lt;br /&gt;
    `curl -s -X POST $url -d chat_id=$main::id -d text=&amp;quot;$payload\n&amp;quot; -d parse_mode=&amp;quot;Markdown&amp;quot;`;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;If `/spider/local/Local.pm` does not exist, you can copy it from the base installation:&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /spider/perl/Local.pm /spider/local/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 📁 File: /spider/local/DXVars.pm ===&lt;br /&gt;
Add your bot credentials at the end of the file, just before `1;`:&amp;lt;pre&amp;gt;&lt;br /&gt;
# Telegram Bot&lt;br /&gt;
$id = &amp;quot;123456789&amp;quot;;&lt;br /&gt;
$token = &amp;quot;89734237899:KF90V20M90MCQJA9Q0&#039;91C,CCC&#039;0944&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;Restart the node to apply the changes:&amp;lt;pre&amp;gt;&lt;br /&gt;
shutdown&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 💬 Notify unregistered users ==&lt;br /&gt;
To let users know that they need to register and can use the `msg_sysop` command, you can override the default DXSpider error message.&lt;br /&gt;
&lt;br /&gt;
Edit `/spider/startup` and add the following lines:&amp;lt;pre&amp;gt;&lt;br /&gt;
set/var $DXM::msgs{en}{e28} = &#039;Sorry, you need to be registered (Use the msg_sysop command to request registration.)&#039;&lt;br /&gt;
set/var $DXM::msgs{es}{e28} = &#039;Lo sentimos, necesitas estar registrado (Usa el comando msg_sysop para solicitar registrarte)&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 📢 Display a message in the MOTD ==&lt;br /&gt;
To remind users upon login, edit the file `/spider/local_data/motd_nor`:&amp;lt;pre&amp;gt;&lt;br /&gt;
+-----------------------------------------------------------------------------+&lt;br /&gt;
|     If you wish to have full access, please use the command &#039;msg_sysop&#039;     |&lt;br /&gt;
|                to request registration on this node.                        |&lt;br /&gt;
+-----------------------------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 📦 Script download ==&lt;br /&gt;
You can download the `msg_sysop.pl` script from the official repository:&lt;br /&gt;
&lt;br /&gt;
[https://github.com/EA3CV/dxspider_info/blob/main/msg_sysop.pl View on GitHub - EA3CV/dxspider_info]&lt;br /&gt;
&lt;br /&gt;
Save it as:&amp;lt;pre&amp;gt;&lt;br /&gt;
/spider/local_cmd/msg_sysop.pl&lt;br /&gt;
&amp;lt;/pre&amp;gt;It may be helpful to look at [https://wiki.dxcluster.org/wiki/Setting_up_the_EA3CV_contributions_repository]&lt;br /&gt;
&lt;br /&gt;
== 🔐 How to get your Telegram ID and Token ==&lt;br /&gt;
To receive messages, you need to configure a Telegram bot:&lt;br /&gt;
&lt;br /&gt;
# Open Telegram and search for &amp;lt;code&amp;gt;@BotFather&amp;lt;/code&amp;gt;&lt;br /&gt;
# Start a new bot with: &amp;lt;code&amp;gt;/newbot&amp;lt;/code&amp;gt; and follow the instructions&lt;br /&gt;
# BotFather will return a token like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1234567890:AAEjg0EjEMPLO_T0KEN4PRUEBA1234&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Send any message to your bot via Telegram&lt;br /&gt;
# Then open this URL in your browser (replace with your actual token):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
https://api.telegram.org/bot&amp;lt;your_token&amp;gt;/getUpdates&lt;br /&gt;
&amp;lt;/pre&amp;gt;You will see something like:&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;chat&amp;quot;:{&amp;quot;id&amp;quot;:123456789,&amp;quot;first_name&amp;quot;:&amp;quot;YourName&amp;quot;,...}&lt;br /&gt;
&amp;lt;/pre&amp;gt;That number is your **chat ID**.  Use this ID and your token in `/spider/local/DXVars.pm`.&lt;br /&gt;
&lt;br /&gt;
=== ⚠️ Important ===&lt;br /&gt;
This script **only works with Telegram bots**.  It is not possible to send messages directly to personal accounts via the Telegram API.&lt;br /&gt;
&lt;br /&gt;
== 🧠 Additional notes ==&lt;br /&gt;
&lt;br /&gt;
* This command is designed as a lightweight and direct alternative to email.&lt;br /&gt;
* The sysop receives all relevant data, including the user’s IP and callsign.&lt;br /&gt;
* You may combine this with logging or other scripts for additional traceability.&lt;br /&gt;
&lt;br /&gt;
== 🧑‍💻 Author ==&lt;br /&gt;
&lt;br /&gt;
* Kin EA3CV* — [mailto:ea3cv@cronux.net](mailto:ea3cv@cronux.net)&lt;/div&gt;</summary>
		<author><name>EA3CV</name></author>
	</entry>
	<entry>
		<id>https://wiki.dxcluster.org/w/index.php?title=Sending_messages_to_the_sysop_via_Telegram&amp;diff=381</id>
		<title>Sending messages to the sysop via Telegram</title>
		<link rel="alternate" type="text/html" href="https://wiki.dxcluster.org/w/index.php?title=Sending_messages_to_the_sysop_via_Telegram&amp;diff=381"/>
		<updated>2025-04-09T16:05:28Z</updated>

		<summary type="html">&lt;p&gt;EA3CV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= 📡 Sending messages to the sysop via Telegram =&lt;br /&gt;
&lt;br /&gt;
== 📋 Description ==&lt;br /&gt;
The `msg_sysop` command allows users connected to a DXSpider node to send a direct message to the sysop via Telegram.&lt;br /&gt;
&lt;br /&gt;
It is useful for:&lt;br /&gt;
&lt;br /&gt;
* Requesting registration on the node&lt;br /&gt;
* Reporting issues or failures&lt;br /&gt;
* Making general enquiries&lt;br /&gt;
&lt;br /&gt;
The message includes the following data:&lt;br /&gt;
&lt;br /&gt;
* User callsign&lt;br /&gt;
* Subject (e.g. REGISTER, PROBLEM, INFO)&lt;br /&gt;
* Email address&lt;br /&gt;
* Message text&lt;br /&gt;
* Access IP&lt;br /&gt;
&lt;br /&gt;
== ▶️ Command usage ==&lt;br /&gt;
From the DXSpider shell:&amp;lt;pre&amp;gt;&lt;br /&gt;
msg_sysop &amp;lt;CALL&amp;gt; &amp;lt;SUBJECT&amp;gt; &amp;lt;EMAIL&amp;gt; &amp;lt;MESSAGE&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set/msg_sysop XX0ABC REGISTER xx0abc@example.com Requesting registration&lt;br /&gt;
set/msg_sysop XX0ABC PROBLEM xx0abc@example.com My password is not working&lt;br /&gt;
set/msg_sysop XX0ABC-1 INFO xx0abc@example.com Greetings from DM42&lt;br /&gt;
&amp;lt;/pre&amp;gt;The user will receive a confirmation, and the sysop will receive the complete message via Telegram.&lt;br /&gt;
&lt;br /&gt;
== ⚙️ Required configuration ==&lt;br /&gt;
To use the `msg_sysop` command, minimal setup is needed for the Telegram bot.&lt;br /&gt;
&lt;br /&gt;
=== 📁 File: /spider/local/Local.pm ===&lt;br /&gt;
Add the following to the end of the file, just before the final `1;`:&amp;lt;pre&amp;gt;&lt;br /&gt;
sub telegram&lt;br /&gt;
{&lt;br /&gt;
    my $payload = shift;&lt;br /&gt;
&lt;br /&gt;
    my $url = &amp;quot;https://api.telegram.org/bot$main::token/sendMessage&amp;quot;;&lt;br /&gt;
    `curl -s -X POST $url -d chat_id=$main::id -d text=&amp;quot;$payload\n&amp;quot; -d parse_mode=&amp;quot;Markdown&amp;quot;`;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;If `/spider/local/Local.pm` does not exist, you can copy it from the base installation:&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /spider/perl/Local.pm /spider/local/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 📁 File: /spider/local/DXVars.pm ===&lt;br /&gt;
Add your bot credentials at the end of the file, just before `1;`:&amp;lt;pre&amp;gt;&lt;br /&gt;
# Telegram Bot&lt;br /&gt;
$id = &amp;quot;123456789&amp;quot;;&lt;br /&gt;
$token = &amp;quot;89734237899:KF90V20M90MCQJA9Q0&#039;91C,CCC&#039;0944&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;Restart the node to apply the changes:&amp;lt;pre&amp;gt;&lt;br /&gt;
shutdown&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 💬 Notify unregistered users ==&lt;br /&gt;
To let users know that they need to register and can use the `msg_sysop` command, you can override the default DXSpider error message.&lt;br /&gt;
&lt;br /&gt;
Edit `/spider/startup` and add the following lines:&amp;lt;pre&amp;gt;&lt;br /&gt;
set/var $DXM::msgs{en}{e28} = &#039;Sorry, you need to be registered (Use the msg_sysop command to request registration.)&#039;&lt;br /&gt;
set/var $DXM::msgs{es}{e28} = &#039;Lo sentimos, necesitas estar registrado (Usa el comando msg_sysop para solicitar registrarte)&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 📢 Display a message in the MOTD ==&lt;br /&gt;
To remind users upon login, edit the file `/spider/local_data/motd_nor`:&amp;lt;pre&amp;gt;&lt;br /&gt;
+-----------------------------------------------------------------------------+&lt;br /&gt;
|     If you wish to have full access, please use the command &#039;msg_sysop&#039;     |&lt;br /&gt;
|                to request registration on this node.                        |&lt;br /&gt;
+-----------------------------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 📦 Script download ==&lt;br /&gt;
You can download the `msg_sysop.pl` script from the official repository:&lt;br /&gt;
&lt;br /&gt;
[https://github.com/EA3CV/dxspider_info/blob/main/msg_sysop.pl View on GitHub - EA3CV/dxspider_info]&lt;br /&gt;
&lt;br /&gt;
Save it as:&amp;lt;pre&amp;gt;&lt;br /&gt;
/spider/local_cmd/msg_sysop.pl&lt;br /&gt;
&amp;lt;/pre&amp;gt;It may be helpful to look at &amp;lt;nowiki&amp;gt;[https://wiki.dxcluster.org/wiki/Setting_up_the_EA3CV_contributions_repository]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 🔐 How to get your Telegram ID and Token ==&lt;br /&gt;
To receive messages, you need to configure a Telegram bot:&lt;br /&gt;
&lt;br /&gt;
# Open Telegram and search for &amp;lt;code&amp;gt;@BotFather&amp;lt;/code&amp;gt;&lt;br /&gt;
# Start a new bot with: &amp;lt;code&amp;gt;/newbot&amp;lt;/code&amp;gt; and follow the instructions&lt;br /&gt;
# BotFather will return a token like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1234567890:AAEjg0EjEMPLO_T0KEN4PRUEBA1234&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Send any message to your bot via Telegram&lt;br /&gt;
# Then open this URL in your browser (replace with your actual token):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
https://api.telegram.org/bot&amp;lt;your_token&amp;gt;/getUpdates&lt;br /&gt;
&amp;lt;/pre&amp;gt;You will see something like:&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;chat&amp;quot;:{&amp;quot;id&amp;quot;:123456789,&amp;quot;first_name&amp;quot;:&amp;quot;YourName&amp;quot;,...}&lt;br /&gt;
&amp;lt;/pre&amp;gt;That number is your **chat ID**.  Use this ID and your token in `/spider/local/DXVars.pm`.&lt;br /&gt;
&lt;br /&gt;
=== ⚠️ Important ===&lt;br /&gt;
This script **only works with Telegram bots**.  It is not possible to send messages directly to personal accounts via the Telegram API.&lt;br /&gt;
&lt;br /&gt;
== 🧠 Additional notes ==&lt;br /&gt;
&lt;br /&gt;
* This command is designed as a lightweight and direct alternative to email.&lt;br /&gt;
* The sysop receives all relevant data, including the user’s IP and callsign.&lt;br /&gt;
* You may combine this with logging or other scripts for additional traceability.&lt;br /&gt;
&lt;br /&gt;
== 🧑‍💻 Author ==&lt;br /&gt;
&lt;br /&gt;
* Kin EA3CV* — [mailto:ea3cv@cronux.net](mailto:ea3cv@cronux.net)&lt;/div&gt;</summary>
		<author><name>EA3CV</name></author>
	</entry>
	<entry>
		<id>https://wiki.dxcluster.org/w/index.php?title=DXSpider_Kin%27s_Helper_Script_Info&amp;diff=380</id>
		<title>DXSpider Kin&#039;s Helper Script Info</title>
		<link rel="alternate" type="text/html" href="https://wiki.dxcluster.org/w/index.php?title=DXSpider_Kin%27s_Helper_Script_Info&amp;diff=380"/>
		<updated>2025-04-09T15:59:21Z</updated>

		<summary type="html">&lt;p&gt;EA3CV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following are resources to help with Kin&#039;s scripts.&lt;br /&gt;
&lt;br /&gt;
* [https://wiki.dxcluster.org/wiki/Updating_Public_IP_and/or_Local_IPs_(set/update_ip) Updating Public IP and/or/Local IPs]&lt;br /&gt;
* [https://wiki.dxcluster.org/wiki/List_of_nodes_for_mobile_use List of nodes for mobile use (mnodes)]&lt;br /&gt;
* [https://wiki.dxcluster.org/wiki/List_of_users_for_mobile_use List of users for mobile use (musers)]&lt;br /&gt;
* Setting up the EA3CV contributions repository[https://wiki.dxcluster.org/wiki/Setting_up_the_EA3CV_contributions_repository )]&lt;br /&gt;
* Node configuration for user access[https://wiki.dxcluster.org/wiki/Node_configuration_for_user_access )]&lt;br /&gt;
* Configure node with Dynamic IP[https://wiki.dxcluster.org/wiki/Configure_node_with_Dynamic_IP_(Mojo_branch) )]&lt;br /&gt;
* Configure Node with more than one local IP[https://wiki.dxcluster.org/wiki/Configure_Node_with_more_than_one_local_IP_(Mojo_branch) )]&lt;br /&gt;
* Create a secure connection between nodes[https://wiki.dxcluster.org/wiki/Create_a_secure_connection_between_nodes )]&lt;br /&gt;
* DXSpider MOJO Version Update Script[https://wiki.dxcluster.org/wiki/DXSpider_MOJO_Version_Update_Script )]&lt;br /&gt;
* Sending messages to the sysop via Telegram&lt;/div&gt;</summary>
		<author><name>EA3CV</name></author>
	</entry>
	<entry>
		<id>https://wiki.dxcluster.org/w/index.php?title=Sending_messages_to_the_sysop_via_Telegram&amp;diff=379</id>
		<title>Sending messages to the sysop via Telegram</title>
		<link rel="alternate" type="text/html" href="https://wiki.dxcluster.org/w/index.php?title=Sending_messages_to_the_sysop_via_Telegram&amp;diff=379"/>
		<updated>2025-04-09T15:57:13Z</updated>

		<summary type="html">&lt;p&gt;EA3CV: Created page with &amp;quot; = 📡 Sending messages to the sysop via Telegram =  == 📋 Description == The `msg_sysop` command allows users connected to a DXSpider node to send a direct message to the sysop via Telegram.  It is useful for:  * Requesting registration on the node * Reporting issues or failures * Making general enquiries  The message includes the following data:  * User callsign * Subject (e.g. REGISTER, PROBLEM, INFO) * Email address * Message text * Access IP  == ▶️ Command us...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= 📡 Sending messages to the sysop via Telegram =&lt;br /&gt;
&lt;br /&gt;
== 📋 Description ==&lt;br /&gt;
The `msg_sysop` command allows users connected to a DXSpider node to send a direct message to the sysop via Telegram.&lt;br /&gt;
&lt;br /&gt;
It is useful for:&lt;br /&gt;
&lt;br /&gt;
* Requesting registration on the node&lt;br /&gt;
* Reporting issues or failures&lt;br /&gt;
* Making general enquiries&lt;br /&gt;
&lt;br /&gt;
The message includes the following data:&lt;br /&gt;
&lt;br /&gt;
* User callsign&lt;br /&gt;
* Subject (e.g. REGISTER, PROBLEM, INFO)&lt;br /&gt;
* Email address&lt;br /&gt;
* Message text&lt;br /&gt;
* Access IP&lt;br /&gt;
&lt;br /&gt;
== ▶️ Command usage ==&lt;br /&gt;
From the DXSpider shell:&amp;lt;pre&amp;gt;&lt;br /&gt;
msg_sysop &amp;lt;CALL&amp;gt; &amp;lt;SUBJECT&amp;gt; &amp;lt;EMAIL&amp;gt; &amp;lt;MESSAGE&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set/msg_sysop XX0ABC REGISTER xx0abc@example.com Requesting registration&lt;br /&gt;
set/msg_sysop XX0ABC PROBLEM xx0abc@example.com My password is not working&lt;br /&gt;
set/msg_sysop XX0ABC-1 INFO xx0abc@example.com Greetings from DM42&lt;br /&gt;
&amp;lt;/pre&amp;gt;The user will receive a confirmation, and the sysop will receive the complete message via Telegram.&lt;br /&gt;
&lt;br /&gt;
== ⚙️ Required configuration ==&lt;br /&gt;
To use the `msg_sysop` command, minimal setup is needed for the Telegram bot.&lt;br /&gt;
&lt;br /&gt;
=== 📁 File: /spider/local/Local.pm ===&lt;br /&gt;
Add the following to the end of the file, just before the final `1;`:&amp;lt;pre&amp;gt;&lt;br /&gt;
sub telegram&lt;br /&gt;
{&lt;br /&gt;
    my $payload = shift;&lt;br /&gt;
&lt;br /&gt;
    my $url = &amp;quot;https://api.telegram.org/bot$main::token/sendMessage&amp;quot;;&lt;br /&gt;
    `curl -s -X POST $url -d chat_id=$main::id -d text=&amp;quot;$payload\n&amp;quot; -d parse_mode=&amp;quot;Markdown&amp;quot;`;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;If `/spider/local/Local.pm` does not exist, you can copy it from the base installation:&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /spider/perl/Local.pm /spider/local/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 📁 File: /spider/local/DXVars.pm ===&lt;br /&gt;
Add your bot credentials at the end of the file, just before `1;`:&amp;lt;pre&amp;gt;&lt;br /&gt;
# Telegram Bot&lt;br /&gt;
$id = &amp;quot;123456789&amp;quot;;&lt;br /&gt;
$token = &amp;quot;89734237899:KF90V20M90MCQJA9Q0&#039;91C,CCC&#039;0944&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;Restart the node to apply the changes:&amp;lt;pre&amp;gt;&lt;br /&gt;
shutdown&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 💬 Notify unregistered users ==&lt;br /&gt;
To let users know that they need to register and can use the `msg_sysop` command, you can override the default DXSpider error message.&lt;br /&gt;
&lt;br /&gt;
Edit `/spider/startup` and add the following lines:&amp;lt;pre&amp;gt;&lt;br /&gt;
set/var $DXM::msgs{en}{e28} = &#039;Sorry, you need to be registered (Use the msg_sysop command to request registration.)&#039;&lt;br /&gt;
set/var $DXM::msgs{es}{e28} = &#039;Lo sentimos, necesitas estar registrado (Usa el comando msg_sysop para solicitar registrarte)&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 📢 Display a message in the MOTD ==&lt;br /&gt;
To remind users upon login, edit the file `/spider/local_data/motd_nor`:&amp;lt;pre&amp;gt;&lt;br /&gt;
+-----------------------------------------------------------------------------+&lt;br /&gt;
|     If you wish to have full access, please use the command &#039;msg_sysop&#039;     |&lt;br /&gt;
|                to request registration on this node.                        |&lt;br /&gt;
+-----------------------------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 📦 Script download ==&lt;br /&gt;
You can download the `msg_sysop.pl` script from the official repository:&lt;br /&gt;
&lt;br /&gt;
[https://github.com/EA3CV/dxspider_info/blob/main/msg_sysop.pl View on GitHub - EA3CV/dxspider_info]&lt;br /&gt;
&lt;br /&gt;
Save it as:&amp;lt;pre&amp;gt;&lt;br /&gt;
/spider/local_cmd/msg_sysop.pl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 🔐 How to get your Telegram ID and Token ==&lt;br /&gt;
To receive messages, you need to configure a Telegram bot:&lt;br /&gt;
&lt;br /&gt;
# Open Telegram and search for &amp;lt;code&amp;gt;@BotFather&amp;lt;/code&amp;gt;&lt;br /&gt;
# Start a new bot with: &amp;lt;code&amp;gt;/newbot&amp;lt;/code&amp;gt; and follow the instructions&lt;br /&gt;
# BotFather will return a token like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1234567890:AAEjg0EjEMPLO_T0KEN4PRUEBA1234&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Send any message to your bot via Telegram&lt;br /&gt;
# Then open this URL in your browser (replace with your actual token):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
https://api.telegram.org/bot&amp;lt;your_token&amp;gt;/getUpdates&lt;br /&gt;
&amp;lt;/pre&amp;gt;You will see something like:&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;chat&amp;quot;:{&amp;quot;id&amp;quot;:123456789,&amp;quot;first_name&amp;quot;:&amp;quot;YourName&amp;quot;,...}&lt;br /&gt;
&amp;lt;/pre&amp;gt;That number is your **chat ID**.  Use this ID and your token in `/spider/local/DXVars.pm`.&lt;br /&gt;
&lt;br /&gt;
=== ⚠️ Important ===&lt;br /&gt;
This script **only works with Telegram bots**.  It is not possible to send messages directly to personal accounts via the Telegram API.&lt;br /&gt;
&lt;br /&gt;
== 🧠 Additional notes ==&lt;br /&gt;
&lt;br /&gt;
* This command is designed as a lightweight and direct alternative to email.&lt;br /&gt;
* The sysop receives all relevant data, including the user’s IP and callsign.&lt;br /&gt;
* You may combine this with logging or other scripts for additional traceability.&lt;br /&gt;
&lt;br /&gt;
== 🧑‍💻 Author ==&lt;br /&gt;
&lt;br /&gt;
* Kin EA3CV* — [mailto:ea3cv@cronux.net](mailto:ea3cv@cronux.net)&lt;/div&gt;</summary>
		<author><name>EA3CV</name></author>
	</entry>
	<entry>
		<id>https://wiki.dxcluster.org/w/index.php?title=DXSpider_Kin%27s_Helper_Script_Info&amp;diff=378</id>
		<title>DXSpider Kin&#039;s Helper Script Info</title>
		<link rel="alternate" type="text/html" href="https://wiki.dxcluster.org/w/index.php?title=DXSpider_Kin%27s_Helper_Script_Info&amp;diff=378"/>
		<updated>2025-04-09T07:32:11Z</updated>

		<summary type="html">&lt;p&gt;EA3CV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following are resources to help with Kin&#039;s scripts.&lt;br /&gt;
&lt;br /&gt;
* [https://wiki.dxcluster.org/wiki/Updating_Public_IP_and/or_Local_IPs_(set/update_ip) Updating Public IP and/or/Local IPs]&lt;br /&gt;
* [https://wiki.dxcluster.org/wiki/List_of_nodes_for_mobile_use List of nodes for mobile use (mnodes)]&lt;br /&gt;
* [https://wiki.dxcluster.org/wiki/List_of_users_for_mobile_use List of users for mobile use (musers)]&lt;br /&gt;
* Setting up the EA3CV contributions repository[https://wiki.dxcluster.org/wiki/Setting_up_the_EA3CV_contributions_repository )]&lt;br /&gt;
* Node configuration for user access[https://wiki.dxcluster.org/wiki/Node_configuration_for_user_access )]&lt;br /&gt;
* Configure node with Dynamic IP[https://wiki.dxcluster.org/wiki/Configure_node_with_Dynamic_IP_(Mojo_branch) )]&lt;br /&gt;
* Configure Node with more than one local IP[https://wiki.dxcluster.org/wiki/Configure_Node_with_more_than_one_local_IP_(Mojo_branch) )]&lt;br /&gt;
* Create a secure connection between nodes[https://wiki.dxcluster.org/wiki/Create_a_secure_connection_between_nodes )]&lt;br /&gt;
* DXSpider MOJO Version Update Script[https://wiki.dxcluster.org/wiki/DXSpider_MOJO_Version_Update_Script )]&lt;/div&gt;</summary>
		<author><name>EA3CV</name></author>
	</entry>
	<entry>
		<id>https://wiki.dxcluster.org/w/index.php?title=DXSpider_MOJO_Version_Update_Script&amp;diff=377</id>
		<title>DXSpider MOJO Version Update Script</title>
		<link rel="alternate" type="text/html" href="https://wiki.dxcluster.org/w/index.php?title=DXSpider_MOJO_Version_Update_Script&amp;diff=377"/>
		<updated>2025-04-09T07:31:04Z</updated>

		<summary type="html">&lt;p&gt;EA3CV: Created page with &amp;quot; = 🛰️ DXSpider MOJO Version Update Script =  == 📍 Purpose == This script allows DXSpider sysops to update their node installation to the latest available &amp;#039;&amp;#039;&amp;#039;MOJO&amp;#039;&amp;#039;&amp;#039; build (a modern development branch of DXSpider).  The project is based on the excellent installation work by &amp;#039;&amp;#039;&amp;#039;Yiannis Panagou (SV5FRI)&amp;#039;&amp;#039;&amp;#039;, and is intended for sysops who already have DXSpider installed and want to upgrade safely.  == 📦 Repository == The script is hosted on GitHub:  https://github...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= 🛰️ DXSpider MOJO Version Update Script =&lt;br /&gt;
&lt;br /&gt;
== 📍 Purpose ==&lt;br /&gt;
This script allows DXSpider sysops to update their node installation to the latest available &#039;&#039;&#039;MOJO&#039;&#039;&#039; build (a modern development branch of DXSpider).&lt;br /&gt;
&lt;br /&gt;
The project is based on the excellent installation work by &#039;&#039;&#039;Yiannis Panagou (SV5FRI)&#039;&#039;&#039;, and is intended for sysops who already have DXSpider installed and want to upgrade safely.&lt;br /&gt;
&lt;br /&gt;
== 📦 Repository ==&lt;br /&gt;
The script is hosted on GitHub:  https://github.com/EA3CV/dxspider_update&lt;br /&gt;
&lt;br /&gt;
== ⚙️ What it does ==&lt;br /&gt;
&lt;br /&gt;
* Automatically downloads the latest MOJO version.&lt;br /&gt;
* Creates a &#039;&#039;&#039;full backup&#039;&#039;&#039; of your current DXSpider installation before updating.&lt;br /&gt;
* Handles the update process in a controlled way.&lt;br /&gt;
* Provides guidance via interactive prompts.&lt;br /&gt;
&lt;br /&gt;
== 📥 Download Instructions ==&lt;br /&gt;
Run the following commands as the &#039;&#039;&#039;root user&#039;&#039;&#039;:&amp;lt;pre&amp;gt;&lt;br /&gt;
wget https://github.com/EA3CV/dxspider_update/archive/refs/heads/main.zip -O update_dxspider.zip&lt;br /&gt;
unzip update_dxspider.zip&lt;br /&gt;
cd dxspider_update-main&lt;br /&gt;
chmod a+x update_dxspider.sh&lt;br /&gt;
./update_dxspider.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;You must provide the script with the full path to your current DXSpider installation (usually &amp;lt;code&amp;gt;/spider&amp;lt;/code&amp;gt; or similar).&lt;br /&gt;
&lt;br /&gt;
== 🖥️ Tested Operating Systems ==&lt;br /&gt;
This script has been tested on a wide range of Linux distributions, including:&lt;br /&gt;
&lt;br /&gt;
* CentOS Linux 7 (Core)&lt;br /&gt;
* CentOS Linux 8 (Core)&lt;br /&gt;
* Debian GNU/Linux 9 (stretch)&lt;br /&gt;
* Debian GNU/Linux 10 (buster)&lt;br /&gt;
* Debian GNU/Linux 11 (bullseye)&lt;br /&gt;
* Debian GNU/Linux 12 (bookworm)&lt;br /&gt;
* Debian GNU/Linux bookworm/sid&lt;br /&gt;
* Fedora Linux 39 (Server Edition)&lt;br /&gt;
* Fedora Linux 39 (Workstation Edition)&lt;br /&gt;
* Linux Mint 21.1&lt;br /&gt;
* Linux Mint 21.3&lt;br /&gt;
* Raspbian GNU/Linux 9 (stretch)&lt;br /&gt;
* Raspbian GNU/Linux 10 (buster)&lt;br /&gt;
* Raspbian GNU/Linux 11 (bullseye)&lt;br /&gt;
* Raspbian GNU/Linux 12 (bookworm)&lt;br /&gt;
* Ubuntu 20.04.6 LTS&lt;br /&gt;
* Ubuntu 22.04 LTS&lt;br /&gt;
* Ubuntu 22.04.1 LTS&lt;br /&gt;
* Ubuntu 22.04.2 LTS&lt;br /&gt;
* Ubuntu 22.04.3 LTS&lt;br /&gt;
* Ubuntu 22.04.4 LTS&lt;br /&gt;
* Ubuntu 22.04.5 LTS&lt;br /&gt;
* Ubuntu 24.04.2 LTS&lt;br /&gt;
* Rocky Linux 8.5 (Green Obsidian)&lt;br /&gt;
&lt;br /&gt;
== ⚠️ Notes ==&lt;br /&gt;
&lt;br /&gt;
* This script is intended for &#039;&#039;&#039;updates only&#039;&#039;&#039;.&lt;br /&gt;
* For a full fresh installation of DXSpider, please refer to the project by &#039;&#039;&#039;SV5FRI&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
https://github.com/glaukos78/dxspider_installation_v2&lt;br /&gt;
&lt;br /&gt;
== 📨 Join the DXSpider community ==&lt;br /&gt;
Sysops interested in tracking development, builds, and contributing can join the official DXSpider mailing list: [https://mailman.tobit.co.uk/mailman/listinfo/dxspider-support DXSpider Support Mailing List]&lt;/div&gt;</summary>
		<author><name>EA3CV</name></author>
	</entry>
	<entry>
		<id>https://wiki.dxcluster.org/w/index.php?title=DXSpider_Kin%27s_Helper_Script_Info&amp;diff=376</id>
		<title>DXSpider Kin&#039;s Helper Script Info</title>
		<link rel="alternate" type="text/html" href="https://wiki.dxcluster.org/w/index.php?title=DXSpider_Kin%27s_Helper_Script_Info&amp;diff=376"/>
		<updated>2025-04-09T07:17:17Z</updated>

		<summary type="html">&lt;p&gt;EA3CV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following are resources to help with Kin&#039;s scripts.&lt;br /&gt;
&lt;br /&gt;
* [https://wiki.dxcluster.org/wiki/Updating_Public_IP_and/or_Local_IPs_(set/update_ip) Updating Public IP and/or/Local IPs]&lt;br /&gt;
* [https://wiki.dxcluster.org/wiki/List_of_nodes_for_mobile_use List of nodes for mobile use (mnodes)]&lt;br /&gt;
* [https://wiki.dxcluster.org/wiki/List_of_users_for_mobile_use List of users for mobile use (musers)]&lt;br /&gt;
* Setting up the EA3CV contributions repository[https://wiki.dxcluster.org/wiki/Setting_up_the_EA3CV_contributions_repository )]&lt;br /&gt;
* Node configuration for user access[https://wiki.dxcluster.org/wiki/Node_configuration_for_user_access )]&lt;br /&gt;
* Configure node with Dynamic IP[https://wiki.dxcluster.org/wiki/Configure_node_with_Dynamic_IP_(Mojo_branch) )]&lt;br /&gt;
* Configure Node with more than one local IP[https://wiki.dxcluster.org/wiki/Configure_Node_with_more_than_one_local_IP_(Mojo_branch) )]&lt;br /&gt;
* Create a secure connection between nodes[https://wiki.dxcluster.org/wiki/Create_a_secure_connection_between_nodes )]&lt;/div&gt;</summary>
		<author><name>EA3CV</name></author>
	</entry>
	<entry>
		<id>https://wiki.dxcluster.org/w/index.php?title=DXSpider_Kin%27s_Helper_Script_Info&amp;diff=375</id>
		<title>DXSpider Kin&#039;s Helper Script Info</title>
		<link rel="alternate" type="text/html" href="https://wiki.dxcluster.org/w/index.php?title=DXSpider_Kin%27s_Helper_Script_Info&amp;diff=375"/>
		<updated>2025-04-09T07:16:42Z</updated>

		<summary type="html">&lt;p&gt;EA3CV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following are resources to help with Kin&#039;s scripts.&lt;br /&gt;
&lt;br /&gt;
* [https://wiki.dxcluster.org/wiki/Updating_Public_IP_and/or_Local_IPs_(set/update_ip) Updating Public IP and/or/Local IPs]&lt;br /&gt;
* [https://wiki.dxcluster.org/wiki/List_of_nodes_for_mobile_use List of nodes for mobile use (mnodes)]&lt;br /&gt;
* [https://wiki.dxcluster.org/wiki/List_of_users_for_mobile_use List of users for mobile use (musers)]&lt;br /&gt;
* Setting up the EA3CV contributions repository[https://wiki.dxcluster.org/wiki/Setting_up_the_EA3CV_contributions_repository )]&lt;br /&gt;
* Node configuration for user access[https://wiki.dxcluster.org/wiki/Node_configuration_for_user_access )]&lt;br /&gt;
* Configure node with Dynamic IP[https://wiki.dxcluster.org/wiki/Configure_node_with_Dynamic_IP_(Mojo_branch) )]&lt;br /&gt;
* Configure Node with more than one local IP[https://wiki.dxcluster.org/wiki/Configure_Node_with_more_than_one_local_IP_(Mojo_branch) )]&lt;/div&gt;</summary>
		<author><name>EA3CV</name></author>
	</entry>
	<entry>
		<id>https://wiki.dxcluster.org/w/index.php?title=DXSpider_Kin%27s_Helper_Script_Info&amp;diff=374</id>
		<title>DXSpider Kin&#039;s Helper Script Info</title>
		<link rel="alternate" type="text/html" href="https://wiki.dxcluster.org/w/index.php?title=DXSpider_Kin%27s_Helper_Script_Info&amp;diff=374"/>
		<updated>2025-04-09T07:07:12Z</updated>

		<summary type="html">&lt;p&gt;EA3CV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following are resources to help with Kin&#039;s scripts.&lt;br /&gt;
&lt;br /&gt;
* [https://wiki.dxcluster.org/wiki/Updating_Public_IP_and/or_Local_IPs_(set/update_ip) Updating Public IP and/or/Local IPs]&lt;br /&gt;
* [https://wiki.dxcluster.org/wiki/List_of_nodes_for_mobile_use List of nodes for mobile use (mnodes)]&lt;br /&gt;
* [https://wiki.dxcluster.org/wiki/List_of_users_for_mobile_use List of users for mobile use (musers)]&lt;br /&gt;
* Setting up the EA3CV contributions repository[https://wiki.dxcluster.org/wiki/Setting_up_the_EA3CV_contributions_repository )]&lt;br /&gt;
* Node configuration for user access[https://wiki.dxcluster.org/wiki/Node_configuration_for_user_access )]&lt;/div&gt;</summary>
		<author><name>EA3CV</name></author>
	</entry>
	<entry>
		<id>https://wiki.dxcluster.org/w/index.php?title=DXSpider_Kin%27s_Helper_Script_Info&amp;diff=373</id>
		<title>DXSpider Kin&#039;s Helper Script Info</title>
		<link rel="alternate" type="text/html" href="https://wiki.dxcluster.org/w/index.php?title=DXSpider_Kin%27s_Helper_Script_Info&amp;diff=373"/>
		<updated>2025-04-09T07:02:55Z</updated>

		<summary type="html">&lt;p&gt;EA3CV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following are resources to help with Kin&#039;s scripts.&lt;br /&gt;
&lt;br /&gt;
* [https://wiki.dxcluster.org/wiki/Updating_Public_IP_and/or_Local_IPs_(set/update_ip) Updating Public IP and/or/Local IPs]&lt;br /&gt;
* [https://wiki.dxcluster.org/wiki/List_of_nodes_for_mobile_use List of nodes for mobile use (mnodes)]&lt;br /&gt;
* [https://wiki.dxcluster.org/wiki/List_of_users_for_mobile_use List of users for mobile use (musers)]&lt;br /&gt;
* Setting up the EA3CV contributions repository[https://wiki.dxcluster.org/wiki/Setting_up_the_EA3CV_contributions_repository )]&lt;/div&gt;</summary>
		<author><name>EA3CV</name></author>
	</entry>
	<entry>
		<id>https://wiki.dxcluster.org/w/index.php?title=Setting_up_the_EA3CV_contributions_repository&amp;diff=372</id>
		<title>Setting up the EA3CV contributions repository</title>
		<link rel="alternate" type="text/html" href="https://wiki.dxcluster.org/w/index.php?title=Setting_up_the_EA3CV_contributions_repository&amp;diff=372"/>
		<updated>2025-04-09T06:58:39Z</updated>

		<summary type="html">&lt;p&gt;EA3CV: Created page with &amp;quot; = 📘 Installation and Maintenance Guide for the &amp;#039;&amp;#039;contrib/ea3cv&amp;#039;&amp;#039; Repository =  == 📍 Purpose == This document provides step-by-step instructions for installing and keeping up to date the &amp;#039;&amp;#039;ea3cv&amp;#039;&amp;#039; repository under:&amp;lt;pre&amp;gt;/home/sysop/spider/contrib/ea3cv&amp;lt;/pre&amp;gt;This repository is intended as a reference, backup, or development environment. It does &amp;#039;&amp;#039;&amp;#039;not directly affect the DXSpider system&amp;#039;&amp;#039;&amp;#039; unless its contents are copied into active directories such as &amp;lt;code&amp;gt;local_cmd...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= 📘 Installation and Maintenance Guide for the &#039;&#039;contrib/ea3cv&#039;&#039; Repository =&lt;br /&gt;
&lt;br /&gt;
== 📍 Purpose ==&lt;br /&gt;
This document provides step-by-step instructions for installing and keeping up to date the &#039;&#039;ea3cv&#039;&#039; repository under:&amp;lt;pre&amp;gt;/home/sysop/spider/contrib/ea3cv&amp;lt;/pre&amp;gt;This repository is intended as a reference, backup, or development environment. It does &#039;&#039;&#039;not directly affect the DXSpider system&#039;&#039;&#039; unless its contents are copied into active directories such as &amp;lt;code&amp;gt;local_cmd/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== 🧩 1. Initial Installation ==&lt;br /&gt;
&lt;br /&gt;
=== ▶️ Step 1: Change to the target directory ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/sysop/spider/contrib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== ▶️ Step 2: Clone the repository ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/EA3CV/dxspider_info.git ea3cv&lt;br /&gt;
&amp;lt;/pre&amp;gt;This will create the directory:&amp;lt;pre&amp;gt;/home/sysop/spider/contrib/ea3cv/&amp;lt;/pre&amp;gt;containing all the contents of the remote GitHub repository.&lt;br /&gt;
&lt;br /&gt;
== 🔄 2. Updating the Repository ==&lt;br /&gt;
&lt;br /&gt;
=== ▶️ Manual update ===&lt;br /&gt;
To fetch the latest changes from GitHub at any time:&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/sysop/spider/contrib/ea3cv&lt;br /&gt;
git pull&lt;br /&gt;
&amp;lt;/pre&amp;gt;This will update the local copy to the latest available version.&lt;br /&gt;
&lt;br /&gt;
=== 🕒 Optional: Automatic update via &amp;lt;code&amp;gt;crontab&amp;lt;/code&amp;gt; ===&lt;br /&gt;
To keep the repository automatically up to date, add a cron job:&lt;br /&gt;
&lt;br /&gt;
# Edit the crontab:&lt;br /&gt;
&amp;lt;pre&amp;gt;nano local_cmd/crontab&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Add the following line to update daily at 04:00:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0 4 * * * spawn(&amp;quot;cd /home/sysop/spider/contrib/ea3cv; git pull&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;This command will:&lt;br /&gt;
&lt;br /&gt;
* Perform a &amp;lt;code&amp;gt;git pull&amp;lt;/code&amp;gt; every day at 04:00.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: Avoid making local modifications inside this repository if it is updated automatically via cron, to prevent merge conflicts.&lt;br /&gt;
&lt;br /&gt;
== 🛠️ 3. Using the Cloned Repository ==&lt;br /&gt;
This repository may contain:&lt;br /&gt;
&lt;br /&gt;
* Scripts under &amp;lt;code&amp;gt;set/&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;show/&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;unset/&amp;lt;/code&amp;gt;&lt;br /&gt;
* Configuration examples&lt;br /&gt;
* Utility tools&lt;br /&gt;
&lt;br /&gt;
You may copy files from this repository into production directories, such as:&amp;lt;pre&amp;gt;/home/sysop/spider/local_cmd/&amp;lt;/pre&amp;gt;For example:&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /home/sysop/spider/contrib/ea3cv/set/myscript.pl /home/sysop/spider/local_cmd/set/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ✅ Quick Summary ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Action&lt;br /&gt;
!Command&lt;br /&gt;
|-&lt;br /&gt;
|Clone the repository&lt;br /&gt;
|&amp;lt;code&amp;gt;git clone https://github.com/EA3CV/dxspider_info.git ea3cv&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Manual update&lt;br /&gt;
|&amp;lt;code&amp;gt;cd ea3cv &amp;amp;&amp;amp; git pull&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Copy script to production&lt;br /&gt;
|&amp;lt;code&amp;gt;cp ea3cv/set/myscript.pl ../local_cmd/set/&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Enable auto-update (cron)&lt;br /&gt;
|See the &#039;&#039;&#039;crontab&#039;&#039;&#039; section above&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 🧠 Notes ==&lt;br /&gt;
&lt;br /&gt;
* This repository is ideal for maintaining clean, reusable command scripts and documentation.&lt;br /&gt;
* Custom scripts or local changes should be done outside this directory, typically in &amp;lt;code&amp;gt;local_cmd/&amp;lt;/code&amp;gt;.&lt;/div&gt;</summary>
		<author><name>EA3CV</name></author>
	</entry>
	<entry>
		<id>https://wiki.dxcluster.org/w/index.php?title=Updating_Public_IP_and/or_Local_IPs_(set/update_ip)&amp;diff=352</id>
		<title>Updating Public IP and/or Local IPs (set/update ip)</title>
		<link rel="alternate" type="text/html" href="https://wiki.dxcluster.org/w/index.php?title=Updating_Public_IP_and/or_Local_IPs_(set/update_ip)&amp;diff=352"/>
		<updated>2025-04-07T17:37:30Z</updated>

		<summary type="html">&lt;p&gt;EA3CV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Purpose ==&lt;br /&gt;
&lt;br /&gt;
Keeping your DXSpider node&#039;s IP addresses updated is &#039;&#039;&#039;not optional&#039;&#039;&#039;—it is &#039;&#039;&#039;essential&#039;&#039;&#039; to ensure correct behaviour of announcements, spots, and cluster communications. Without this, there is a risk that outbound spots or announcements may be discarded by other nodes.&lt;br /&gt;
&lt;br /&gt;
This internal command allows your DXSpider node to:&lt;br /&gt;
&lt;br /&gt;
* Automatically update its &#039;&#039;&#039;public IP address&#039;&#039;&#039; (IPv4 and IPv6) if it has changed (useful for dynamic IP setups).&lt;br /&gt;
* Add &#039;&#039;&#039;custom local IPs&#039;&#039;&#039; (LAN, Docker, VM, etc.) to &amp;lt;code&amp;gt;@main::localhost_names&amp;lt;/code&amp;gt;, ensuring proper recognition of internal connections.&lt;br /&gt;
&lt;br /&gt;
== Command ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set/update_ip &amp;lt;ip1&amp;gt; &amp;lt;ip2&amp;gt; ... &amp;lt;ipN&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
=== Basic ===&lt;br /&gt;
&lt;br /&gt;
Run the command without arguments to update the public IPs (IPv4 and IPv6) and detect local IPs automatically:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set/update_ip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== With local IPs ===&lt;br /&gt;
&lt;br /&gt;
If your system uses a static local IP such as &amp;lt;code&amp;gt;192.168.1.100&amp;lt;/code&amp;gt;, you should explicitly declare it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set/update_ip 192.168.1.100&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you have more hosts (e.g., Docker containers, proxies, firewalls), list them all:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set/update_ip 192.168.1.100 10.1.0.25&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This updates the &amp;lt;code&amp;gt;@main::localhost_names&amp;lt;/code&amp;gt; variable to include those local IPs.&lt;br /&gt;
&lt;br /&gt;
== Sample Output ==&lt;br /&gt;
&lt;br /&gt;
If there are no changes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
No public IPv4 change: 2.2.2.2&lt;br /&gt;
No public IPv6 change: &lt;br /&gt;
No local IPs change: 127.0.0.1 ::1 172.18.0.3 192.168.1.10&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If there is a change:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Public IPv4 change: 2.2.2.2 → 1.1.1.1&lt;br /&gt;
Public IPv6 change: &lt;br /&gt;
Local IPs changes: 127.0.0.1 ::1 172.18.0.3 192.168.1.22&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Crontab Integration ==&lt;br /&gt;
&lt;br /&gt;
If your node uses a &#039;&#039;&#039;dynamic IP&#039;&#039;&#039;, it is recommended to run this regularly via cron. Add the following to your crontab:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
00,10,20,30,40,50 * * * * run_cmd(&amp;quot;set/update_ip 172.18.0.3 172.18.0.4 192.168.1.10&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This checks for changes every 10 minutes. You may prefer a 5-minute interval depending on your setup.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Save the script to the correct location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /spider/local_cmd&lt;br /&gt;
mkdir -p set&lt;br /&gt;
cd set&lt;br /&gt;
wget -c https://github.com/EA3CV/dxspider_info/blob/main/set/update_ip.pl&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, you can run it from DXSpider shell:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set/update_ip 192.168.1.100 10.1.0.25&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>EA3CV</name></author>
	</entry>
	<entry>
		<id>https://wiki.dxcluster.org/w/index.php?title=Updating_Public_IP_and/or_Local_IPs_(set/update_ip)&amp;diff=335</id>
		<title>Updating Public IP and/or Local IPs (set/update ip)</title>
		<link rel="alternate" type="text/html" href="https://wiki.dxcluster.org/w/index.php?title=Updating_Public_IP_and/or_Local_IPs_(set/update_ip)&amp;diff=335"/>
		<updated>2025-04-07T16:36:59Z</updated>

		<summary type="html">&lt;p&gt;EA3CV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Updating Public IP and/or Local IPs (set/update_ip) =&lt;br /&gt;
&lt;br /&gt;
== Purpose ==&lt;br /&gt;
Keeping your DXSpider node&#039;s IP addresses updated is &#039;&#039;&#039;not optional&#039;&#039;&#039;—it is &#039;&#039;&#039;essential&#039;&#039;&#039; to ensure correct behaviour of announcements, spots, and cluster communications. Without this, there is a risk that outbound spots or announcements may be discarded by other nodes.&lt;br /&gt;
&lt;br /&gt;
This internal command allows your DXSpider node to:&lt;br /&gt;
&lt;br /&gt;
* Automatically update its &#039;&#039;&#039;public IP address&#039;&#039;&#039; (IPv4 and IPv6) if it has changed (useful for dynamic IP setups).&lt;br /&gt;
* Add &#039;&#039;&#039;custom local IPs&#039;&#039;&#039; (LAN, Docker, VM, etc.) to &amp;lt;code&amp;gt;@main::localhost_names&amp;lt;/code&amp;gt;, ensuring proper recognition of internal connections.&lt;br /&gt;
&lt;br /&gt;
== Command ==&lt;br /&gt;
&amp;lt;code&amp;gt;set/update_ip &amp;lt;ip1&amp;gt; &amp;lt;ip2&amp;gt; ... &amp;lt;ipN&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
=== Basic ===&lt;br /&gt;
Run the command without arguments to update the public IPs (IPv4 and IPv6) and detect local IPs automatically:&amp;lt;pre&amp;gt;&lt;br /&gt;
set/update_ip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== With local IPs ===&lt;br /&gt;
If your system uses a static local IP such as &amp;lt;code&amp;gt;192.168.1.100&amp;lt;/code&amp;gt;, you should explicitly declare it:&amp;lt;pre&amp;gt;&lt;br /&gt;
set/update_ip 192.168.1.100&lt;br /&gt;
&amp;lt;/pre&amp;gt;If you have more hosts (e.g., Docker containers, proxies, firewalls), list them all:&amp;lt;pre&amp;gt;&lt;br /&gt;
set/update_ip 192.168.1.100 10.1.0.25&lt;br /&gt;
&amp;lt;/pre&amp;gt;This updates the &amp;lt;code&amp;gt;@main::localhost_names&amp;lt;/code&amp;gt; variable to include those local IPs.&lt;br /&gt;
&lt;br /&gt;
== Sample Output ==&lt;br /&gt;
If there are no changes:&amp;lt;pre&amp;gt;&lt;br /&gt;
No public IPv4 change: 2.2.2.2&lt;br /&gt;
No public IPv6 change: &lt;br /&gt;
No local IPs change: 127.0.0.1 ::1 172.18.0.3 192.168.1.10&lt;br /&gt;
&amp;lt;/pre&amp;gt;If there is a change:&amp;lt;pre&amp;gt;&lt;br /&gt;
Public IPv4 change: 2.2.2.2 → 1.1.1.1&lt;br /&gt;
Public IPv6 change: &lt;br /&gt;
Local IPs changes: 127.0.0.1 ::1 172.18.0.3 192.168.1.22&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Crontab Integration ==&lt;br /&gt;
If your node uses a &#039;&#039;&#039;dynamic IP&#039;&#039;&#039;, it is recommended to run this regularly via cron. Add the following to your crontab:&amp;lt;pre&amp;gt;&lt;br /&gt;
00,10,20,30,40,50 * * * * run_cmd(&amp;quot;set/update_ip 172.18.0.3 172.18.0.4 192.168.1.10&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;This checks for changes every 10 minutes. You may prefer a 5-minute interval depending on your setup.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Save the script to the correct location:&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /spider/local_cmd&lt;br /&gt;
mkdir -p set&lt;br /&gt;
cd set&lt;br /&gt;
wget -c [https://github.com/EA3CV/dxspider_info/blob/main/set/update_ip.pl update_ip.pl on GitHub]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;Then, you can run it from DXSpider shell:&amp;lt;pre&amp;gt;&lt;br /&gt;
set/update_ip 192.168.1.100 10.1.0.25&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>EA3CV</name></author>
	</entry>
	<entry>
		<id>https://wiki.dxcluster.org/w/index.php?title=Updating_Public_IP_and/or_Local_IPs_(set/update_ip)&amp;diff=334</id>
		<title>Updating Public IP and/or Local IPs (set/update ip)</title>
		<link rel="alternate" type="text/html" href="https://wiki.dxcluster.org/w/index.php?title=Updating_Public_IP_and/or_Local_IPs_(set/update_ip)&amp;diff=334"/>
		<updated>2025-04-07T16:33:24Z</updated>

		<summary type="html">&lt;p&gt;EA3CV: Blanked the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>EA3CV</name></author>
	</entry>
	<entry>
		<id>https://wiki.dxcluster.org/w/index.php?title=Updating_Public_IP_and/or_Local_IPs_(set/update_ip)&amp;diff=333</id>
		<title>Updating Public IP and/or Local IPs (set/update ip)</title>
		<link rel="alternate" type="text/html" href="https://wiki.dxcluster.org/w/index.php?title=Updating_Public_IP_and/or_Local_IPs_(set/update_ip)&amp;diff=333"/>
		<updated>2025-04-07T16:30:28Z</updated>

		<summary type="html">&lt;p&gt;EA3CV: Created page with &amp;quot;= Updating Public IP and/or Local IPs (set/update_ip) =  == Purpose ==  Keeping your DXSpider node&amp;#039;s IP addresses updated is &amp;#039;&amp;#039;&amp;#039;not optional&amp;#039;&amp;#039;&amp;#039;—it is &amp;#039;&amp;#039;&amp;#039;essential&amp;#039;&amp;#039;&amp;#039; to ensure correct behaviour of announcements, spots, and cluster communications. Without this, there is a risk that outbound spots or announcements may be discarded by other nodes.  This internal command allows your DXSpider node to:  * Automatically update its &amp;#039;&amp;#039;&amp;#039;public IP address&amp;#039;&amp;#039;&amp;#039; (IPv4 and IPv6) if it...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Updating Public IP and/or Local IPs (set/update_ip) =&lt;br /&gt;
&lt;br /&gt;
== Purpose ==&lt;br /&gt;
&lt;br /&gt;
Keeping your DXSpider node&#039;s IP addresses updated is &#039;&#039;&#039;not optional&#039;&#039;&#039;—it is &#039;&#039;&#039;essential&#039;&#039;&#039; to ensure correct behaviour of announcements, spots, and cluster communications. Without this, there is a risk that outbound spots or announcements may be discarded by other nodes.&lt;br /&gt;
&lt;br /&gt;
This internal command allows your DXSpider node to:&lt;br /&gt;
&lt;br /&gt;
* Automatically update its &#039;&#039;&#039;public IP address&#039;&#039;&#039; (IPv4 and IPv6) if it has changed (useful for dynamic IP setups).&lt;br /&gt;
* Add &#039;&#039;&#039;custom local IPs&#039;&#039;&#039; (LAN, Docker, VM, etc.) to &amp;lt;code&amp;gt;@main::localhost_names&amp;lt;/code&amp;gt;, ensuring proper recognition of internal connections.&lt;br /&gt;
&lt;br /&gt;
== Command ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set/update_ip &amp;lt;ip1&amp;gt; &amp;lt;ip2&amp;gt; ... &amp;lt;ipN&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
=== Basic ===&lt;br /&gt;
&lt;br /&gt;
Run the command without arguments to update the public IPs (IPv4 and IPv6) and detect local IPs automatically:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set/update_ip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== With local IPs ===&lt;br /&gt;
&lt;br /&gt;
If your system uses a static local IP such as &amp;lt;code&amp;gt;192.168.1.100&amp;lt;/code&amp;gt;, you should explicitly declare it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set/update_ip 192.168.1.100&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you have more hosts (e.g., Docker containers, proxies, firewalls), list them all:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set/update_ip 192.168.1.100 10.1.0.25&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This updates the &amp;lt;code&amp;gt;@main::localhost_names&amp;lt;/code&amp;gt; variable to include those local IPs.&lt;br /&gt;
&lt;br /&gt;
== Sample Output ==&lt;br /&gt;
&lt;br /&gt;
If there are no changes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
No public IPv4 change: 2.2.2.2&lt;br /&gt;
No public IPv6 change: &lt;br /&gt;
No local IPs change: 127.0.0.1 ::1 172.18.0.3 192.168.1.10&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If there is a change:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Public IPv4 change: 2.2.2.2 → 1.1.1.1&lt;br /&gt;
Public IPv6 change: &lt;br /&gt;
Local IPs changes: 127.0.0.1 ::1 172.18.0.3 192.168.1.22&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Crontab Integration ==&lt;br /&gt;
&lt;br /&gt;
If your node uses a &#039;&#039;&#039;dynamic IP&#039;&#039;&#039;, it is recommended to run this regularly via cron. Add the following to your crontab:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
00,10,20,30,40,50 * * * * run_cmd(&amp;quot;set/update_ip 172.18.0.3 172.18.0.4 192.168.1.10&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This checks for changes every 10 minutes. You may prefer a 5-minute interval depending on your setup.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Save the script to the correct location:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /spider/local_cmd&lt;br /&gt;
mkdir -p set&lt;br /&gt;
cd set&lt;br /&gt;
wget -c [https://github.com/EA3CV/dxspider_info/blob/main/set/update_ip.pl update_ip.pl on GitHub]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, you can run it from DXSpider shell:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set/update_ip 192.168.1.100 10.1.0.25&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>EA3CV</name></author>
	</entry>
	<entry>
		<id>https://wiki.dxcluster.org/w/index.php?title=Configure_Node_with_more_than_one_local_IP_(Mojo_branch)&amp;diff=332</id>
		<title>Configure Node with more than one local IP (Mojo branch)</title>
		<link rel="alternate" type="text/html" href="https://wiki.dxcluster.org/w/index.php?title=Configure_Node_with_more_than_one_local_IP_(Mojo_branch)&amp;diff=332"/>
		<updated>2025-04-07T13:52:25Z</updated>

		<summary type="html">&lt;p&gt;EA3CV: Update link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;NOTE: You do &amp;lt;b&amp;gt;NOT&amp;lt;/b&amp;gt; need to fiddle with this unless you specifically have more than just the normal definitions of localhost. So for &#039;normal&#039; nodes with one external interface, &amp;lt;b&amp;gt;YOU DO NOT NEED TO DO ANY OF THIS&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you need to configure a node with more than one local IP address, you can do this in the Mojo branch. This allows other IP addresses to be treated in the same way as localhost.&lt;br /&gt;
&lt;br /&gt;
These can be set in the &#039;&#039;&#039;/spider/scripts/startup&#039;&#039;&#039; file.&lt;br /&gt;
&lt;br /&gt;
The variable &#039;&#039;&#039;@main::localhost_names&#039;&#039;&#039; is used to achieve this.&lt;br /&gt;
&lt;br /&gt;
You must include ALL the normal localhost names + any other interface names that you might want to include:&lt;br /&gt;
&lt;br /&gt;
 set/var @main::localhost_names (&#039;127.0.0.1&#039;, &#039;::1&#039;, &#039;192.168.1.30&#039;, &#039;172.16.0.20&#039;)&lt;br /&gt;
&lt;br /&gt;
You can simplify this by using the qw() option, like this ...&lt;br /&gt;
&lt;br /&gt;
 set/var @main::localhost_names qw(127.0.0.1 ::1 192.168.1.30 172.16.0.20)&lt;br /&gt;
&lt;br /&gt;
but either will work. You can define as many IP addresses as you like and they can be IPV4 or 6.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To find the Local IPs you can use the following command at the command line:&lt;br /&gt;
&lt;br /&gt;
 hostname -I&lt;br /&gt;
&lt;br /&gt;
You can also update the cluster immediately by adding the following line in the console:&lt;br /&gt;
&lt;br /&gt;
 set/var @main::localhost_names qw(127.0.0.1 ::1 192.168.1.30 172.16.0.20)&lt;br /&gt;
&lt;br /&gt;
To see what values the cluster has use the following in the console:&lt;br /&gt;
&lt;br /&gt;
 sh/var @main::localhost_names&lt;br /&gt;
&lt;br /&gt;
There is a script called update_ip.pl (in contributions) that automatically updates this variable.&lt;br /&gt;
&lt;br /&gt;
It can be downloaded at [https://raw.githubusercontent.com/EA3CV/dxspider_info/main/set/update_ip.pl]&lt;/div&gt;</summary>
		<author><name>EA3CV</name></author>
	</entry>
	<entry>
		<id>https://wiki.dxcluster.org/w/index.php?title=Configure_Node_with_more_than_one_local_IP_(Mojo_branch)&amp;diff=331</id>
		<title>Configure Node with more than one local IP (Mojo branch)</title>
		<link rel="alternate" type="text/html" href="https://wiki.dxcluster.org/w/index.php?title=Configure_Node_with_more_than_one_local_IP_(Mojo_branch)&amp;diff=331"/>
		<updated>2025-04-07T06:23:39Z</updated>

		<summary type="html">&lt;p&gt;EA3CV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;NOTE: You do &amp;lt;b&amp;gt;NOT&amp;lt;/b&amp;gt; need to fiddle with this unless you specifically have more than just the normal definitions of localhost. So for &#039;normal&#039; nodes with one external interface, &amp;lt;b&amp;gt;YOU DO NOT NEED TO DO ANY OF THIS&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you need to configure a node with more than one local IP address, you can do this in the Mojo branch. This allows other IP addresses to be treated in the same way as localhost.&lt;br /&gt;
&lt;br /&gt;
These can be set in the &#039;&#039;&#039;/spider/scripts/startup&#039;&#039;&#039; file.&lt;br /&gt;
&lt;br /&gt;
The variable &#039;&#039;&#039;@main::localhost_names&#039;&#039;&#039; is used to achieve this.&lt;br /&gt;
&lt;br /&gt;
You must include ALL the normal localhost names + any other interface names that you might want to include:&lt;br /&gt;
&lt;br /&gt;
 set/var @main::localhost_names (&#039;127.0.0.1&#039;, &#039;::1&#039;, &#039;192.168.1.30&#039;, &#039;172.16.0.20&#039;)&lt;br /&gt;
&lt;br /&gt;
You can simplify this by using the qw() option, like this ...&lt;br /&gt;
&lt;br /&gt;
 set/var @main::localhost_names qw(127.0.0.1 ::1 192.168.1.30 172.16.0.20)&lt;br /&gt;
&lt;br /&gt;
but either will work. You can define as many IP addresses as you like and they can be IPV4 or 6.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To find the Local IPs you can use the following command at the command line:&lt;br /&gt;
&lt;br /&gt;
 hostname -I&lt;br /&gt;
&lt;br /&gt;
You can also update the cluster immediately by adding the following line in the console:&lt;br /&gt;
&lt;br /&gt;
 set/var @main::localhost_names qw(127.0.0.1 ::1 192.168.1.30 172.16.0.20)&lt;br /&gt;
&lt;br /&gt;
To see what values the cluster has use the following in the console:&lt;br /&gt;
&lt;br /&gt;
 sh/var @main::localhost_names&lt;br /&gt;
&lt;br /&gt;
There is a script called update_ip.pl (in contributions) that automatically updates this variable.&lt;br /&gt;
&lt;br /&gt;
It can be downloaded at [https://raw.githubusercontent.com/EA3CV/dxspider_info/main/update_ip.pl]&lt;/div&gt;</summary>
		<author><name>EA3CV</name></author>
	</entry>
	<entry>
		<id>https://wiki.dxcluster.org/w/index.php?title=Restoring_the_user_DB_(Mojo_branch)&amp;diff=240</id>
		<title>Restoring the user DB (Mojo branch)</title>
		<link rel="alternate" type="text/html" href="https://wiki.dxcluster.org/w/index.php?title=Restoring_the_user_DB_(Mojo_branch)&amp;diff=240"/>
		<updated>2025-03-24T17:47:25Z</updated>

		<summary type="html">&lt;p&gt;EA3CV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;From the command line as &amp;lt;b&amp;gt;sysop&amp;lt;/b&amp;gt; user:&lt;br /&gt;
&lt;br /&gt;
Stopped service&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 sudo service dxspider stop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Change to the directory that contains the user backup: &amp;lt;b&amp;gt;user_json&amp;lt;/b&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 cd /spider/local_data&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Run regeneration of &amp;lt;b&amp;gt;users.v3j&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
perl user_json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Start cluster service&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo service dxspider start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>EA3CV</name></author>
	</entry>
</feed>