[NEWSboard IBMi Forum]
Seite 1 von 3 1 2 ... Letzte
  1. #1
    Registriert seit
    Nov 2006
    Beiträge
    38

    Question RPG: Client Infos lesen?

    Hallo,

    mittlerweile habe ich schon ein paar Programme in RPG geschrieben und es klappt ganz gut. Nun habe ich folgendes Problem:

    Gibt es eine Möglichkeit (API oder so), wie ich Informationen über den angemeldeten Client, die Session oder das Client OS auslesen kann? Also der User meldet sich über 5250 an der AS400 an und startet ein RPG Prog. Bis jetzt habe ich nur die IP gefunden.

    Robert

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Nein, da gibts keine Möglichkeit.

    Per Socket-Programmierung kann man ggf. versuchen Kontakt mit dem Client aufzunehmen, was durch Firewalls zunehmend erschwert wird.
    Welchen Port man da nehmen muss unterscheidet sich dann von Client zu Client, ich habe da keine Ahnung.

    Da es keine Regeln hierfür gibt hast du da keine Chance.

    Möglichkeiten gibts da nähmlich viele und im Endeffekt landest du gar an der falschen Stelle.
    Beispiel HOB:
    HOB stelle einen Server zur Verfügung auf dem die 5250-Sitzungen laufen. Die Clients werden dann über Inter-/Intranet mit diesem Server verbunden. Der AS/400 ist per IP nur der Server bekannt. Mit anderen Worten, für alle User gibts die selbe IP.

    Und: wofür soll es gut sein ?
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Nov 2006
    Beiträge
    38
    Zitat Zitat von Fuerchau
    Nein, da gibts keine Möglichkeit.

    Per Socket-Programmierung kann man ggf. versuchen Kontakt mit dem Client aufzunehmen, was durch Firewalls zunehmend erschwert wird.
    Welchen Port man da nehmen muss unterscheidet sich dann von Client zu Client, ich habe da keine Ahnung.

    Da es keine Regeln hierfür gibt hast du da keine Chance.

    Möglichkeiten gibts da nähmlich viele und im Endeffekt landest du gar an der falschen Stelle.
    Beispiel HOB:
    HOB stelle einen Server zur Verfügung auf dem die 5250-Sitzungen laufen. Die Clients werden dann über Inter-/Intranet mit diesem Server verbunden. Der AS/400 ist per IP nur der Server bekannt. Mit anderen Worten, für alle User gibts die selbe IP.

    Und: wofür soll es gut sein ?
    Hallo Fuerchau,

    danke für die schnelle Antwort. Na das hört sich nicht so toll an.

    Wir nutzen Handscanner mit der AS400 und ich würde gerne wissen, ob nun ein Scanner oder ein PC angemeldet ist. Am Benutzer und IP könnte man es festmachen, hat aber nicht so viel Sinn - ändert sich des öfteren. Wir nutzen immer den selben Port für alle 5250 Verbindungen. Kann ich damit etwas machen? Eigentlich dachte ich wäre dies einfacher. Bin wohl zu sehr Java und C verwöhnt ;-)

    Robert

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Tja, genau hier ist der einzige Ansatz.
    Schreibe ein Java-/C-Programm für die Clients, von denen du die Info benötigst. Dieses kann per IP auf einen Anfrage warten (Firewall/Port).

    Von der AS/400 fragst du dann über die ermittelte IP die Info vom Client ab.
    Keine Antwort => Unbekanntes Gerät.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  5. #5
    Registriert seit
    Nov 2006
    Beiträge
    38
    Zitat Zitat von Fuerchau
    Tja, genau hier ist der einzige Ansatz.
    Schreibe ein Java-/C-Programm für die Clients, von denen du die Info benötigst. Dieses kann per IP auf einen Anfrage warten (Firewall/Port).

    Von der AS/400 fragst du dann über die ermittelte IP die Info vom Client ab.
    Keine Antwort => Unbekanntes Gerät.
    Hätte es gerne nur aus dem rpg prog gemacht, aber wenns nicht klappt! Muss ich mir mal überlegen, ob das eine gute Idee ist. Denn sobald das Prog nicht läuft, kann ich mir ja nicht sicher sein, um welchen Client es sich handelt. Schade. Besten Danke Fuerchau

    Robert

  6. #6
    Registriert seit
    May 2002
    Beiträge
    2.642

    Client APIs

    Hallo Robert,
    vielleicht helfen Dir da die Client APIs ?

    z.B.:

    http://www-1.ibm.com/support/docview...07cb2d7&rs=110

  7. #7
    Registriert seit
    May 2002
    Beiträge
    2.642

    API Link

    Hallo Robert,
    hier noch einen Link:
    http://publib.boulder.ibm.com/infoce...s/QDCRDEVD.htm

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    DAS war es leider nicht.
    Er möchte von der AS/400 aus die OS-Version des 5250-Clients herausfinden und zwar egal ob das CA, Rumba, Mocha oder nur Telnet ist.

    Vom Client aus das OS der AS festzustellen reicht schon SQL (DBMS-Version).
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  9. #9
    Registriert seit
    May 2002
    Beiträge
    2.642

    QDCRDEVD API

    aber es gibt doch z.B. das QDCRDEVD API mit diesem kann ich
    doch die verschiedensten Informationen bekommen. (wie in dem API LINK beschrieben)

    z.B.:

    Retrieve the IP Address of a Connected Telnet Client
    by Scott Klement
    Club Tech iSeries Programming Tips Editor

    January 15, 2006 —
    Q: How can I retrieve the IP address of someone connected with Telnet? For example, if a user on my network uses iSeries Access to sign on to my iSeries from his or her desktop PC, can I retrieve that PC's IP address?
    A: Yes, the Retrieve Device Description (QDCRDEVD) API can return the IP address of the computer that a given display device is connected to.
    The QDCRDEVD API is documented in the iSeries Information Center at the following link:
    http://publib.boulder.ibm.com/infoce...s/QDCRDEVD.htm
    The "Format name" parameter needs to be set to DEVD0600, because this is the format that contains information about display devices.
    The "Device name" parameter should be set to the name of the device that you'd like to get the IP address for. If it's for the current interactive job, you can use the RTVJOBA command to get the device name.
    For example, if you wanted to write a CL program that uses SNDUSRMSG to display the address of the 5250 client (i.e., the PC connected with iSeries Access) as well as the address of the iSeries itself, you could code the following:
    PGM PARM(&DEV)

    DCL VAR(&DEV) TYPE(*CHAR) LEN(10)
    DCL VAR(&RCVVAR) TYPE(*CHAR) LEN(1000)
    DCL VAR(&RCVVARLEN) TYPE(*CHAR) LEN(4)
    DCL VAR(&ERRCODE) TYPE(*CHAR) LEN(8) VALUE(X'00000000')
    DCL VAR(&PC) TYPE(*CHAR) LEN(15)
    DCL VAR(&ISERIES) TYPE(*CHAR) LEN(15)

    IF (&DEV *EQ '*CURRENT') DO
    RTVJOBA JOB(&DEV)
    ENDDO

    CHGVAR VAR(%BIN(&RCVVARLEN)) VALUE(1000)

    CALL PGM(QDCRDEVD) PARM( &RCVVAR +
    &RCVVARLEN +
    'DEVD0600' +
    &DEV +
    &ERRCODE )

    CHGVAR VAR(&PC) VALUE(%SST(&RCVVAR 878 15))
    CHGVAR VAR(&ISERIES) VALUE(%SST(&RCVVAR 958 15))

    SNDUSRMSG MSG('5250 client has IP address' *BCAT &PC) +
    MSGTYPE(*INFO)

    SNDUSRMSG MSG('iSeries has IP address' *BCAT &ISERIES) +
    MSGTYPE(*INFO)

    ENDPGM
    If you call that program with a parameter of *CURRENT, it looks up the current interactive session. Otherwise, it expects the parameter to be the name of the device that you want to get the address of.
    For example, to find the current interactive program's IP address, I could type:
    CALL PGM(GETIP) PARM('*CURRENT')
    If I want to know the DSP01 session's IP address, I could type the following, instead:
    CALL PGM(GETIP) PARM('DSP01')
    If you want to use those IP addresses in your program, it should be an easy modification to return the addresses as parameters.

  10. #10
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Ja, die IP-Adresse hat er doch schon.
    Aber wie willst du nun mit dieser IP die OS-Version des Gegenüber erfragen ?
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  11. #11
    Registriert seit
    May 2002
    Beiträge
    2.642

    IP-Adresse war ja nur ein Beispiel

    Die IP-Adresse war ja nur ein Beispiel. Mit dem API "QDCRDEVD"
    bekommt man wesentlich mehr Informationen:

    http://publib.boulder.ibm.com/infoce...s/QDCRDEVD.htm

  12. #12
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Dieses API liefert ausschließlich lokal auf der AS/400 vorhandene Informationen über die verschiedenen Devices.

    Ich kann also damit feststellen, dass per IP oder SNA ein Terminal emuliert wird.

    Mit STRPCO kann ich dann feststellen, dass CA dahinter steckt.
    Rumba, Mocha und Konsorten unterstützen dies aber nicht.

    Auch weiß ich nicht, steckt dahinter nun Windows XP, NT, 2000 oder noch 98 ?
    Läuft da gerade ein Java-Telnet5250 auf Linux ?

    usw. usw.

    Ich denke, dass hier so was ähnliches benötigt wird, wie ein Browser, mit dem ich auch per JScript/VBScript o.ä. die Umgebung prüfen und an den Server (eingeschränkt) melden kann. Dies läuft aber auf dem Client ab !

    Ich kann also auf dem Client ein kleines Programm schreiben, mit dem ich den aktuellen OS-Stand per IP an die AS/400 melde.
    Z.B. per kleinem Java und JDBC, dass die Daten in eine AS/400-DB schreibt.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

Similar Threads

  1. RPG Entwickler nach New Brunswick/ Kanada gesucht
    By RaMai in forum NEWSboard Server Job
    Antworten: 6
    Letzter Beitrag: 04-06-07, 17:49
  2. Problem mit Java-Methoden Aufruf aus ILE RPG?
    By Stoeberl in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 10-01-07, 10:58
  3. RPG goes Web
    By jth in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 21-12-06, 11:13
  4. IBM DB2 Client Configuration Assistant
    By srcdbgr in forum IBM i Hauptforum
    Antworten: 9
    Letzter Beitrag: 12-09-06, 14:37

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •