Hallo,
wie kann man FHEM in Abhängigkeit von der IP starten.
Hintergrund:
Ich betreibe einen lokalen IIS-Server unter windows. Ich möchte einen Link auf meinen lokalen FHEM-Server setzen, aber fremde IPs sollen nur leserechte haben.
Hi,
Ich habe es glaube ich nicht verstanden, aber ich fange mal an.
Ich habe ein Script. Damit müsstest Du fhem starten :)
#!/bin/bash
server=Server Oder IP
port=80
if /usr/bin/nc -z $server $port 2>/dev/null; then
#echo "$server ist auf $port erreichbar"
cd /opt/fhem
/usr/bin/perl fhem.pl fhem.cfg
fi
Gruß Otto
Danke, aber wie ist der Code unter windows?
Ich möchte FHEM in Abhängigkeit von der IP starten. Alle anderen setze ich auf readonly!
Dein FHEM läuft unter Windows? Also direkt und nicht in WSL?
Ich verstehe die Abhängigkeit von der IP nicht?
Wenn der Windows Rechner eine bestimmte IP hat?
Wenn eine bestimmte IP im Netzwerk verfügbar ist?
Ich möchte nur deinen Zugriff gewähren, die eine andere IP haben. Ich initialisiere dann anders. Einmal mit readonly und einmal ohne.
Zitat von: LotharRappsilber am 30 Januar 2021, 15:32:26
Danke, aber wie ist der Code unter windows?
Also ich kann diese Frage noch beantworten, obwohl sie sicher nicht deine eigentlich Fragestellung ist. Irgendwie fehlt mir da der Kontext.
Powershell
if ((Test-NetConnection 192.168.178.1 -Port 80).TcpTestSucceeded) {
write-output "Server an"
# hier könnte jetzt der Start einen Programmes stehen
}
Ich möchte das:
define WEB FHEMWEB 8083 global
setuuid WEB 5cd7f177-f33f-2440-82c5-97402bf20b179aaa
attr WEB editConfig 1
attr WEB hiddenroom CUL_WS,KS300,FHT,CUL_HM,CUL_0,FS20,Plots
attr WEB iconPath default:fhemSVG:openautomation
attr WEB longpoll 1
attr WEB menuEntries restart,cmd=shutdown+restart,update,cmd=update,updatecheck,cmd=update+check,reloadMyUtils,cmd=reload+99_myUtils.pm,reloadMyUtilsTelefon,pm
attr WEB stylesheetPrefix dark
in Abhängigkeit von der IP auf readonlay setzen, also wenn es nicht meine eigene ist. Da ich einen internen Webserver betreibe, kann ich einen Link auf FHEM setzen.
Mit
define myIP HTTPMOD https://www.wieistmeineip.de/ 86400
setuuid myIP 6015741d-f33f-9284-d3b0-c5cccb34d3e8b8c7
attr myIP userattr reading01Name reading01Regex
attr myIP reading01Name IP
attr myIP reading01Regex (?s)Ihre IP-Adresse?.*strong>([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)
attr myIP stateFormat IP
hab ich schon meine externe IP herausgefunden.
das nennt sich reverse proxy was du mit deinem iss machen willst. Da muss in fhem lediglich zugriff von local gestattet werden. und zwar am besten nur von local.
Wenn ich einen internen Webserver habe und nur einen Link setzen möchte, brache ich doch nicht reverse proxy.
Zitat von: LotharRappsilber am 30 Januar 2021, 16:46:37
Wenn ich einen internen Webserver habe und nur einen Link setzen möchte, brache ich doch nicht reverse proxy.
Wenn Du das sagst. Kenne mich mit IIS nicht so aus. Du wirst das schon wissen.
Deine externe IP landet doch gar nie nicht "in" fhem!
Die wird doch schon vom Router "vernated".
Also externer PC (irgendeine externe IP) greift mittels DEINER externen IP auf deinen ROUTER zu.
Der hat dann Port-Forwarding auf dein fhem oder deinen IIS, dazu nutzt der Router nat. eine INTERNE IP, d.h. bei/auf fhem/IIS kommt die Anfrage mit DIESER INTERNEN IP an.
Daher reicht bzw. funktioniert es nur so wie cooltux schon geschrieben hat: Zugriff mit lokaler IP...
Deine Absicherung muss aber dann (hoffentlich) im IIS gemacht werden!
Und der leitet dann (wenn Berechtigt) an fhem weiter (oder auch nicht)...
...das ist dann das "Reverse-Proxy"...
Warum nicht Zugriff von außen einfach per VPN?
Gruß, Joachim
Das stimmt, aber ich habe die interne IP auf die ich verlinken möchte.
Es sollte etwa so aussehen:
Wenn die zugreifende IP nicht meine externe IP ist, setze ich readonly. Dazu brauche ich meine externe IP.
Ich hatte leider einen Denkfehler. Die remote IP kann ich ja nicht herausfinden. Danke für Eure Hilfe!!!
Zitat von: LotharRappsilber am 30 Januar 2021, 17:28:00
Ich hatte leider einen Denkfehler. Die remote IP kann ich ja nicht herausfinden. Danke für Eure Hilfe!!!
Hatte ich ja geschrieben... ;)
Und VPN nutzen!?
Gruß, Joachim