- Gegevens
-
Categorie: Algemene info
-
Gepubliceerd: dinsdag 18 december 2018 13:16
-
Geschreven door Henk D
-
Hits: 4350
Met welk IP adres ben ik nu aan het werken.
Vaak is dat zo opgelost door naar oa de link https://whatsmyip.com/ te gaan en daar staat je IP adres.
Optie twee is om bij je modem in te loggen en te kijken wel WAN adres hij heeft.
Maar, als je niet thuis bent en je wilt je netwerk bereiken, dan heb je bij b.v Ziggo, met een dynamisch IP adres een uitdaging. Zeker bij Ziggo wisselt het IP adres niet, maar je zou het maar net nodig hebben als je in wilt loggen op je thuisnetwerk.
Als eerste oplossing wordt natuurlijk een DDNS geadviseerd. Die houd voor jou bij wat je IP adres is en geeft dan een URL naar jouw IP adres. Daarvoor moet je dan wel software laten draaien op jouw netwerk. (soms zit dat ook ergens in ingebakken, maar toch)
Ik heb een eigen website bij een Host draaien en zocht naar een andere oplossing.
Die was redelijk snel gevonden. Ik reserveer gewoon een plekje op mijn eigen website waar ik mijn IP van mijn thuiswerk neerzet. Omdat de website aan een domein hangt, kan ik die altijd vinden.
Maar hoe zorg ik dat die info op de website komt.
Als eerste heb ik een simpel formulier in HTML gemaakt. Daar vervolgens een PHP schil omheen gebouwd.
Ik kan met een "GET" opdracht in het formulier gegevens naar de website sturen. Die pak ik dan op met een PHP script, die dat vervolgens in de Database zet.
Vanaf mijn thuisnetwerk, stuur ik elk uur een bericht naar mijn website. In het PHP script kijk is of de juiste verificatie-code is gegeven. Zoja, dan weet ik dat die aanvraag van mijn thuisnetwerk kwam en in PHP weet ik ook het IP-adres van de afzender. Dus is het IP-adres van mijn thuis-netwerk op de server bekend. Die toon ik dan het volgend bezoek op het scherm.
Vanuit mijn thuisnetwerk heb ik een Raspberry Pi die om het uur een bevraging doet en daardoor mijn IP adres bijwerkt. Dat doe ik met een Curl opdracht, die ik start met een Cronjob.
Daarvoor heb ik de regel "@hourly sh /home/pi/IP_doorgeven.sh > /home/pi/logs/cronlog 2>&1" in mijn crontab toegevoegd.
En die verwijst weer naar het bestand "IP_doorgeven.sh"
#!/bin/bash
curl -s 'https://www.mijn_website.nl/Mijn_thuis_ip_adres_is.php?veri=mijn_veiligheidscode_die_ik_ter_controle_en _veiligheid_mee_stuur&Submit=Verzenden' > /dev/null
En dan nog chmod +x IP_doorgeven.sh
Om het programma uitvoerbaar te maken
Op mijn_website staat dan het onderstaande PHP programma "Mijn_thuis_ip_adres_is.php"
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>IP</title>
</head>
<body>
<?php
// -----------------------------------------------------------------------------
// database instellingen
// -----------------------------------------------------------------------------
$servername = "localhost";
$username = "gebruikersnaam van de database";
$password = "wachtwoord van de database";
$dbname = "de database naam";
// -----------------------------------------------------------------------------
// Maak verbinding voor opvragen huidige IP adres
// -----------------------------------------------------------------------------
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
//$sql = "SELECT * FROM IP_vpn";
$sql = "SELECT IP_id, IP_adres, IP_date FROM IP_vpn WHERE IP_id = 1"; // Alleen het eerste record is nodig
$result = $conn->query($sql);
if ($result->num_rows == 1) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "IP " . $row["IP_adres"]. " van datum: " . $row["IP_date"]. "<br>";
}
} else {
echo "0 results";
}
$conn->close();
// -----------------------------------------------------------------------------
// Controle of een nieuw IP adres is verkregen en de code is gegeven (veri)
// -----------------------------------------------------------------------------
$datum_tijd = date("Y-m-d H:i:s"); // nodig voor update datum in de tabel
$veri = $_GET["veri"]; // kijk of er een veri (verificatiecode is meegegeven
if ($veri == "mijn_veiligheidscode_die_ik_ter_controle_en _veiligheid_mee_stuur") { // de verificatiecode
// -----------------------------------------------------------------------------
// Maak verbinding met de DB voor een update
// -----------------------------------------------------------------------------
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "UPDATE IP_vpn SET IP_adres='".$_SERVER["REMOTE_ADDR"]."',IP_date='".$datum_tijd."' WHERE IP_id=1";
if ($conn->query($sql) === TRUE) {
echo "Record updated successfully";
} else {
echo "Error updating record: " . $conn->error;
}
$conn->close();
}
?>
</body>
</html>
De gemaakte code is niet mijn mooiste, maar een even snel geknipt en geplakt vanuit het internet.
Mocht je het na willen bouwen en je komt er niet uit, neem dan contact met me op via de contactpagina.
Bij mij draait het naar volle tevredenheid.
- Gegevens
-
Categorie: Algemene info
-
Gepubliceerd: maandag 15 oktober 2018 18:27
-
Geschreven door Henk D
-
Hits: 41208
Hard- en Softwareprojecten die uitvoerig zijn beschreven op de site om ze te kunnen reproduceren.
Dat is de doel van deze website, want vaak ben ik alweer vergeten hoe ik een object ben aangevlogen een tot het resultaat ben gekomen.
En als er dan een aanpassing gemaakt moet worden is er weer dezelfde zoektocht nodig. Dat vond ik zonde van de tijd en ben daarom maar on-line aan de slag gegaan, zodat ook andere wat hebben aan mijn ervaring.
Mogelijk dat de kleine aandachtspuntjes u kunnen helpen bij het bouwen van soort gelijke projecten.
Het bijhouden van de website is voor mij ook een van de vele hobby's en ik heb maar een beperkte hoeveelheid tijd.
Dus het kan voorkomen dat het op de website niet mooi is afgesloten, terwijl het bij mij volledig werkt.
Maar het kan dus ook in de ijskast geplaatst zijn in verband met andere prioriteiten.
De projecten die ik bewerk zijn voorzien van een mededeling boven in de pagina.
Het moeilijkste blijft altijd als het eindelijk aan de praat is gekregen nog even de tijd te nemen om het te documenteren. Een daar hoop ik dit mee te doen. De projecten die al draaide, die heb ik snel even uit het blote hoofd op de site gezet.
Natuurlijk is het bouwen van deze website ook een project en heb dus ook maar gelijk een pagina over de bouw en verdere ontwikkeling gemaakt.
Voor contact is een contactpagina gemaakt. daarmee is het mogelijk om mij een email te sturen.