INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

LabVIEW Netzwerk Library mit Support für SSL, Ping und IPv6



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

29.04.2010, 14:10
Beitrag #1

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
LabVIEW Netzwerk Library mit Support für SSL, Ping und IPv6
Ich habe hier ein OpenG Package geposted das eine Library für LabVIEW 7.1 und neuer für Windows enthält die ähnlich funktioniert wie die eingebauten Netzwerkfunktionen aber verschiedene Extras unterstützt. Wer Interesse daran hat diese anzuschauen kann sie gerne mal downloaden. Bemerkungen und Anregungen sind willkommen.

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
29.04.2010, 20:55
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
LabVIEW Netzwerk Library mit Support für SSL, Ping und IPv6
Hört sich interessant an.Top1

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.04.2010, 08:54
Beitrag #3

RoLe Offline
LVF-Guru
*****


Beiträge: 1.236
Registriert seit: Jul 2007

-
1997
en

0
Schweiz
LabVIEW Netzwerk Library mit Support für SSL, Ping und IPv6
Top1
Super, nun können wir "richtig" Pingen in LabVIEW.

Was ich sehr interessant finde, sind die eigenen Property's.
Irgendwie steht das in den rc und rch File.

Wie macht man das, bzw. wie sind verkettet ?
Hast du da irgenwelche Links/Dokus?

.·´¯)--> Leben ist das, was dir passiert, wenn du eifrig dabei bist andere Pläne zu machen <--(¯`·.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.04.2010, 09:31 (Dieser Beitrag wurde zuletzt bearbeitet: 30.04.2010 09:49 von rolfk.)
Beitrag #4

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
LabVIEW Netzwerk Library mit Support für SSL, Ping und IPv6
' schrieb:Top1
Super, nun können wir "richtig" Pingen in LabVIEW.

Also mit einer Einschränkung! Das geht nur wenn der entsprechende Prozess Administratorprivileges hat (oder man die in der ICMP Funktion beschriebenen Registrysettings einstellt, was ich aber ehrlich gesagt noch nicht getestet habe).

Zitat:Was ich sehr interessant finde, sind die eigenen Property's.
Irgendwie steht das in den rc und rch File.

Wie macht man das, bzw. wie sind verkettet ?
Hast du da irgenwelche Links/Dokus?

Sorry das ist alles mit viel trial and error zusammengehackt und ist deutlich kein Feature das NI für Enduser gedacht hat. Vieles da drin funktioniert manchmal nur in bestimmten Kombinationen, obwohl das scheinbar nicht direkt sinnvoll ist. Auch muss man aufpassen da gewisse logische Dinge in 7.1 und 8.0 nicht oder nur scheinbar funktionieren und irgendwann in 8.x plötzlich schon. LabVIEW 8.6 und 2009 unterstützt auch noch ein RCVersion: 4 Format aber ich habe keine Idee was da die Neuerungen sind.

Ich werde mich mal hinsetzen und versuchen das bischen was ich weiss sauber zu dokumentieren, da ich im Moment allerlei schwer lesbare kleine Dokumente habe mit alles ausser sauberer Syntaxbeschreibung. Aber mit dem RC Format alleine ist es noch nicht getan. Die Userdata Refnums (die es auch noch in Tag Form (schaut aus wie ein VISA Refnum, und man kann im selben File keine Generic und Generic Tag Refnums mixen vor LabVIEW 8.2 weil das der Objekt Parser scheinbar nicht schnallt) und noch in verschiedenen weiteren Varianten gibt, Generic Tag Flatten, etc) sind völlig undokumentiert soweit ich weiss.

Es gibt da einige private Nodes mit denen man aus einem 32 bit Integer eine Userdata Refnum machen kann. Selber habe ich diese Funktionen aus verschiedenen technischen Gründen gleich im C code ausgeführt, was noch viel undokumentierter ist und absolut frustrierend weil man konstant crasht wenn man etwas nicht richtig hat, was bei undokumentierten Features absolut unvermeidlich ist Big Grin

Ein anderer frustrierender Aspekt ist das Syntax Errors im RC file die Objekte völlig unsichtbar machen und LabVIEW nirgendwo eine gute Fehlermeldung gibt. Eine minimale Lösung ist das hinzufügen zum INI File von:

createLogFile=True
DPrintfLogging=True
DPrintfToFile=True
promoteDWarnInternals=True

Ich weiss jetzt gerade nicht welche davon wirklich nötig sind und habe keine Lust das auszuprobieren.

Mit diesen Settings kriegt man manchmal eine Zeile mit der Angabe "OMParse: <kurze generike Fehlermeldung mit Zeilennummer>" im dprintf.txt file im LabVIEW Folder.

Die RC Files werden nur beim Starten geparst, (und es gibt scheinbar keine andere Möglichkeit das in LabVIEW anzustossen), also nach jedem Fehler: LabVIEW abschliessen, File editieren, LabVIEW starten, schauen, und in 99% der Fälle ganz fest fluchen Rolleyes.

Das ist also wirklich eine frustrierende Erfahrung!

EDIT: Was ich noch zu sagen vergass, dies alles ist eindeutig nur sinnvoll im Zusammenhang mit einer externen Library (DLL, shared library) da das ganze "Object Manager" Interface darauf gebaut ist. Das RC File übernimmt die Aufgabe zwischen dieser externen Library und dem LabVIEW Property und Method Interface zu vermitteln und gibt LabVIEW die nötigen Informationen um den Maschinencode zu erzeugen um diese externe Library aufzurufen. Das bedeutet aber auch dass die externe Library ganz spezifische Funktionen exportieren muss und alle Datentypen die diese Funktion empfängt für Property und Method Implementation sind immer native LabVIEW Datentypen (String und Array Handles) und müssen mit den entsprechenden LabVIEW Manager Funktionen erzeugt, verändert und frei gegeben werden.

Das alles wird es für die meisten potentielen Benützer wohl eher unwahrscheinlich machen dass sie sich überhaubt da hinein arbeiten wollen da die shared Library ganz explizit für LabVIEW und dieses Interface geschrieben werden muss, und man wirklich sehr viele Kenntnisse über die LabVIEW C Datentypen und Schnittstellen haben muss.

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.04.2010, 14:21
Beitrag #5

RoLe Offline
LVF-Guru
*****


Beiträge: 1.236
Registriert seit: Jul 2007

-
1997
en

0
Schweiz
LabVIEW Netzwerk Library mit Support für SSL, Ping und IPv6
' schrieb:Also mit einer Einschränkung! Das geht nur wenn der entsprechende Prozess Administratorprivileges hat (oder man die in der ICMP Funktion beschriebenen Registrysettings einstellt, was ich aber ehrlich gesagt noch nicht getestet habe).
Das ist aber schade.
Ev. könnte man das ICMP-Open mit einem Login versehen. Weis nicht ob es das als C gibt.
Mit C# habe ich ein RunProcessAsAdmin gemacht, jedoch geht das bis jetzt nur mit Filename. (Ersatz für das SystemExec.vi)
Oder, wie starte ich einen Prozess mit Adminrechten, aussert LabVIEW (oder die erstellte EXE) als Admin zu starten?

Ich habe mir ein Ping mit c#/net gemacht, dort gibt es extra System.Net.NetworkInformation.Ping das mit den User-Rechten läuft. Jedoch mit 8.2 geht es nicht, mit 9.0 schon (unter Vista, denke es geht erst mit einem Vista-Ready LV)

.·´¯)--> Leben ist das, was dir passiert, wenn du eifrig dabei bist andere Pläne zu machen <--(¯`·.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.04.2010, 14:31
Beitrag #6

RoLe Offline
LVF-Guru
*****


Beiträge: 1.236
Registriert seit: Jul 2007

-
1997
en

0
Schweiz
LabVIEW Netzwerk Library mit Support für SSL, Ping und IPv6
' schrieb:Sorry das ist alles mit viel trial and error zusammengehackt und ist deutlich kein Feature das NI für Enduser gedacht hat.
...
Das ist also wirklich eine frustrierende Erfahrung!
...

Das alles wird es für die meisten potentielen Benützer wohl eher unwahrscheinlich machen dass sie sich überhaubt da hinein arbeiten wollen da die shared Library ganz explizit für LabVIEW und dieses Interface geschrieben werden muss, und man wirklich sehr viele Kenntnisse über die LabVIEW C Datentypen und Schnittstellen haben muss.
Besten Dank für die ausführliche Antwort, extrem Advanced ist das schon.
Aufgefallen ist es mir gleich, das du da was neues in deine DLL-Künste implementiert hast.

.·´¯)--> Leben ist das, was dir passiert, wenn du eifrig dabei bist andere Pläne zu machen <--(¯`·.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
30.04.2010, 17:08
Beitrag #7

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
LabVIEW Netzwerk Library mit Support für SSL, Ping und IPv6
' schrieb:Das ist aber schade.
Ev. könnte man das ICMP-Open mit einem Login versehen. Weis nicht ob es das als C gibt.
Mit C# habe ich ein RunProcessAsAdmin gemacht, jedoch geht das bis jetzt nur mit Filename. (Ersatz für das SystemExec.vi)
Oder, wie starte ich einen Prozess mit Adminrechten, aussert LabVIEW (oder die erstellte EXE) als Admin zu starten?

Ich habe mir ein Ping mit c#/net gemacht, dort gibt es extra System.Net.NetworkInformation.Ping das mit den User-Rechten läuft. Jedoch mit 8.2 geht es nicht, mit 9.0 schon (unter Vista, denke es geht erst mit einem Vista-Ready LV)

Login ginge wohl schon ist aber nicht etwas das ich machen möchte. Das geht einfach zu weit wenn eine einzelne Funktion das macht. Dass Raw sockets beschränkt sind auf Admin Rechte, respektieve unter Linux alternativ auch mit speziellen Applikationsrechten (die durch einen Administrator gegeben werden müssen), ist etwas Platformübergreifendes. Es gibt unter Windows eine spezielle ICMP DLL die das scheinbar umgeht, wahrscheinlich durch einen eigenen Kerneltreiber der sich da irgenwie in die Winsocks einklinkt, aber diese Schnittstelle ist auf neueren Windows Versionen offiziel als "not for new designs" deklariert. Deshalb habe ich mich auch noch nicht weiter mit dieser Variante abgegeben. Die ICMP Implementation in dieser Library ist im Prinzip ein Nebeneffekt weil ich einen Testcase für den Rawsocketzugang nötig hatte und das ICMP Echo Reply ist an sich recht einfach zu implementieren.

Kannst ja mal den Registry Hack probieren. Für das Distributieren von Applikationen an andere Benützer ist das zwar keine wirkliche Lösung (da man auf diese Weise den Raw-Socket Zugang für alle Applikationen, inklusive eventuelle Trojans und Backdoors öffnet) aber es ist zumindest eine mögliche Variante.

Unter Windows XP und neuer wird die sinnvollste Variante sein, dem Executable ein Manifest mitzugeben das angibt dass man explicit ein Admin Login beim Aufstarten verlangt. Vielleicht schaue ich noch mal ob es eine Möglichkeit gibt das ICMP DLL Interface auf eine saubere Art in meine Library einzubauen, aber hohe Priorität hat das nicht.

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.05.2010, 09:23
Beitrag #8

RoLe Offline
LVF-Guru
*****


Beiträge: 1.236
Registriert seit: Jul 2007

-
1997
en

0
Schweiz
LabVIEW Netzwerk Library mit Support für SSL, Ping und IPv6
' schrieb:Kannst ja mal den Registry Hack probieren.
Nein, das mache ich nicht. Big Grin

' schrieb:Unter Windows XP und neuer wird die sinnvollste Variante sein, dem Executable ein Manifest mitzugeben das angibt dass man explicit ein Admin Login beim Aufstarten verlangt. Vielleicht schaue ich noch mal ob es eine Möglichkeit gibt das ICMP DLL Interface auf eine saubere Art in meine Library einzubauen, aber hohe Priorität hat das nicht.
Das geht, jedenfalls bei mir, so nicht unter Vista.
Ich bin lokal Admin, kann das "als Admin ausführen" nur bestätigen, kein Login.
Aber, wenn ich "richtig" Admin bin, nach Bestätigung, habe ich aus Sicherheitsgründen kein Netzwerkzugriff mehr.
Ob das so üblich ist, weis ich nicht. Jedenfalls geht es bei mir nur mit einem User-Ping.

Nochmals Danke für die ausführlichen Erläuterungen, für mich ist hier fertig.

.·´¯)--> Leben ist das, was dir passiert, wenn du eifrig dabei bist andere Pläne zu machen <--(¯`·.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.05.2010, 10:31
Beitrag #9

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
LabVIEW Netzwerk Library mit Support für SSL, Ping und IPv6
' schrieb:Nein, das mache ich nicht. Big Grin
Das geht, jedenfalls bei mir, so nicht unter Vista.
Ich bin lokal Admin, kann das "als Admin ausführen" nur bestätigen, kein Login.
Aber, wenn ich "richtig" Admin bin, nach Bestätigung, habe ich aus Sicherheitsgründen kein Netzwerkzugriff mehr.
Ob das so üblich ist, weis ich nicht. Jedenfalls geht es bei mir nur mit einem User-Ping.
Funktioniert die ICMP Open als lokal Admin bei Dir wirklich nicht? Und als normaler User hast Du schon ein UAC? Ich werde mal schauen ob es da etwas gibt um eine Applikation beim "Starten explicit zu "elevaten". Irgendetwas muss da sein, weil Windows macht es auch bei bestimmten Applikationen nach einem ziemlich verqueren Algorithme der unter anderem sagt dass Programme die setup.exe heissen so einen UAC haben sollten.

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.05.2010, 11:59
Beitrag #10

RoLe Offline
LVF-Guru
*****


Beiträge: 1.236
Registriert seit: Jul 2007

-
1997
en

0
Schweiz
LabVIEW Netzwerk Library mit Support für SSL, Ping und IPv6
' schrieb:Funktioniert die ICMP Open als lokal Admin bei Dir wirklich nicht?
Habe das nochmal mal durchgespielt.

Wenn ich LabVIEW 8.2/9.0 normal starte (lokal Admin), bekomme ich immer Fehler 54 vom ICMP-Open.

Wenn ich LabVIEW mit UAC starte (rechte Taste als Admin, ok) dann geht folgendes:
- Localhost oder Computername oder die eigene IP 172.16.60.81 - geht
- 172.16.10.54 eine SPS, die geht nicht.
- http://www.ni.com geht auch nicht, da ich mit UAC kein Netzwerk mehr habe.

Mit dem DOS Ping.exe geht alles, ohne UAC.

.·´¯)--> Leben ist das, was dir passiert, wenn du eifrig dabei bist andere Pläne zu machen <--(¯`·.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Problem mit Datasocket Ping Pong Hubert R. 6 5.622 10.11.2021 14:17
Letzter Beitrag: Martin.Henz
  Zugriff auf Software im Netzwerk Tobi Wan Kenobi 4 5.679 28.01.2015 12:53
Letzter Beitrag: th13
  Daten via Netzwerk bereitstellen marc10k 3 5.456 10.07.2014 14:06
Letzter Beitrag: GerdW
  Große Datenmengen via Netzwerk-Shared-Variable übertragen dane90 2 5.491 17.06.2014 08:09
Letzter Beitrag: dane90
  Netzwerk Shared Variablen haben unterschiedliche Werte dane90 2 4.158 11.06.2014 13:20
Letzter Beitrag: dane90
  VI Fernsteuerung über Netzwerk Banick 3 5.729 25.03.2014 09:04
Letzter Beitrag: Banick

Gehe zu: