Hola
Con el mandato NETSTAT y con la opc.3 "Trabajar con Estado de
Conexión TCP/IP"
Aparte, te adjunto un programita (clp) que dice la pantalla,
puerto y direccion IP.
Un Saludo
----aquí va el programa ----
/*------------------------------------------------------------------*/
pgm
/*--------------------------------------------------------*/
/* declaration */
/*--------------------------------------------------------*/
DCL VAR(&RCVVAR) TYPE(*CHAR) LEN(1024)
DCL VAR(&RCVLEN) TYPE(*CHAR) LEN(4) +
VALUE(X'00000400')
DCL VAR(&FORMAT) TYPE(*CHAR) LEN(10) +
VALUE(DEVD0600)
DCL VAR(&TCPIP) TYPE(*CHAR) LEN(2) VALUE(X'02')
DCL VAR(&IPADDR) TYPE(*CHAR) LEN(15)
DCL VAR(&PORT) TYPE(*DEC) LEN(5)
DCL VAR(&PORTBIN) TYPE(*CHAR) LEN(2)
DCL VAR(&PORTCHAR) TYPE(*CHAR) LEN(5)
DCL VAR(&DEVD) TYPE(*CHAR) LEN(10)
DCL VAR(&ERRDTA) TYPE(*CHAR) LEN(116)
DCL VAR(&ERRLEN) TYPE(*CHAR) LEN(4) +
VALUE(X'00000074')
DCL VAR(&ERRAVL) TYPE(*DEC) LEN(15)
DCL VAR(&BIN4) TYPE(*CHAR) LEN(4)
DCL VAR(&MSG) TYPE(*CHAR) LEN(200)
DCL VAR(&ERROR) TYPE(*LGL) /* std err */
DCL VAR(&MSGID) TYPE(*CHAR) LEN(7) /* std err */
DCL VAR(&MSGKEY) TYPE(*CHAR) LEN(4) /* std err */
DCL VAR(&MSGDTA) TYPE(*CHAR) LEN(100) /* std err */
DCL VAR(&MSGF) TYPE(*CHAR) LEN(10) /* std err */
DCL VAR(&MSGFLIB) TYPE(*CHAR) LEN(10) /* std err */
DCL VAR(&MSGTYP) TYPE(*CHAR) LEN(10) +
VALUE('*DIAG') /* std err */
DCL VAR(&MSGTYPCTR) TYPE(*CHAR) LEN(4) +
VALUE(X'00000001') /* std err */
DCL VAR(&PGMMSGQ) TYPE(*CHAR) LEN(10) VALUE('*') +
/* std err */
DCL VAR(&STKCTR) TYPE(*CHAR) LEN(4) +
VALUE(X'00000001') /* std err */
DCL VAR(&ERRBYTES) TYPE(*CHAR) LEN(4) +
VALUE(X'00000000') /* std err */
MONMSG MSGID(CPF0000) EXEC(GOTO CMDLBL(ERROR))
/*--------------------------------------------------------*/
/* Get my device */
/*--------------------------------------------------------*/
RTVJOBA JOB(&DEVD)
CHGVAR VAR(&RCVVAR) VALUE(' ')
CHGVAR VAR(&ERRDTA) VALUE(&ERRLEN)
CALL PGM(QDCRDEVD) PARM(&RCVVAR &RCVLEN &FORMAT +
&DEVD &ERRDTA)
CHGVAR VAR(&BIN4) VALUE(%SST(&ERRDTA 5 4))
CHGVAR VAR(&ERRAVL) VALUE(%BIN(&BIN4))
RMVMSG CLEAR(*ALL)
/*----------------------------------------------*/
/* Error found on the API, skip */
/*----------------------------------------------*/
IF COND(&ERRAVL > 0) THEN(DO)
CHGVAR VAR(&ERRDTA) VALUE(%SST(&ERRDTA 1 &ERRAVL))
CHGVAR VAR(&MSGID) VALUE(%SST(&ERRDTA 9 7))
CHGVAR VAR(&MSGDTA) VALUE(%SST(&ERRDTA 17 100))
GOTO CMDLBL(END)
ENDDO
/*--------------------------------------------------------*/
/* Get the IP address for TCP/IP device. */
/* Network Protocol must equal = x'02' (pos 859) */
/*--------------------------------------------------------*/
IF COND(%SST(&RCVVAR 859 1) *NE &TCPIP) +
THEN(GOTO CMDLBL(END))
CHGVAR VAR(&PORTBIN) VALUE(%SST(&RCVVAR 860 2))
CHGVAR VAR(&PORT) VALUE(%BIN(&PORTBIN))
CHGVAR VAR(&PORTCHAR) VALUE(&PORT)
CHGVAR VAR(&IPADDR) VALUE(%SST(&RCVVAR 878 15))
/*--------------------------------------------------------*/
/* Display the information */
/*--------------------------------------------------------*/
CHGVAR VAR(&MSG) VALUE('Dispositivo:' *BCAT &DEVD +
*BCAT 'Puerto:' *BCAT &PORTCHAR *BCAT +
'Direccion IP:' *BCAT &IPADDR)
SNDPGMMSG MSG(&MSG)
GOTO CMDLBL(END)
/*--------------------------------------------------------*/
/* error routine: */
/*--------------------------------------------------------*/
error:
IF COND(&ERROR) THEN(GOTO CMDLBL(ERRORDONE))
ELSE CMD(CHGVAR VAR(&ERROR) VALUE('1'))
/*----------------------------------------------*/
/* move all *DIAG message to *PRV program queue*/
/*----------------------------------------------*/
CALL PGM(QMHMOVPM) PARM(&MSGKEY &MSGTYP +
&MSGTYPCTR &PGMMSGQ &STKCTR &ERRBYTES)
/*----------------------------------------------*/
/* resend the last *ESCAPE message */
/*----------------------------------------------*/
errordone:
CALL PGM(QMHRSNEM) PARM(&MSGKEY &ERRBYTES)
MONMSG MSGID(CPF0000) EXEC(DO)
SNDPGMMSG MSGID(CPF3CF2) MSGF(QCFPMSG) +
MSGDTA('QMHRSNEM') MSGTYPE(*ESCAPE)
MONMSG MSGID(CPF0000)
ENDDO
END: ENDPGM
-----Mensaje original-----
De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] En nombre de Ivan Amigo
Enviado el: viernes, 28 de julio de 2006 11:20
Para: [email protected]
Asunto: Saber IP dispositivos
Una consulta: se puede saber de alguna manera desde que dirección IP se ha
conectado un usuario al A400? Desde el dispositivo utilizado
(QPADEV????) se puede saber? Imagino que si el usuario sigue conectado, desde
algúna opción se podrá saber qué conexión está activa y desde qué IP y porqué
puerto y demás, no?
Muchas gracias
--
Iván Amigo Dumont
Sistemas de Información
T (+34) 913 609 958 | F (+34) 913 609 994
RBC Dexia Investor Services España, S.A.
www.rbcdexia-is.es
CAMBIO de DIRECCIONES de CORREO-E
Rogamos actualice su agenda de direcciones de correo electrónico. Todas las
direcciones de correo del dominio "@bancoval.es" cambian a "@rbcdexia-is.es"
E-MAIL ADDRESSES are CHANGING
Be advised that all the e-mail addresses from the domain "@bancoval.es"
are changing to "@rbcdexia-is.es".Please update your e-mail addresses.
AVISO LEGAL
Este mensaje de correo electrónico y sus documentos adjuntos están dirigidos
exclusivamente a los destinatarios especificados. Puede contener información
confidencial o legalmente protegida. No hay renuncia a la confidencialidad o
privilegio por cualquier transmisión errónea. Si usted no es el destinatario
indicado, le rogamos que lo elimine y se lo comunique al remitente. No debe,
directa o indirectamente, usar, revelar, distribuir, imprimir o copiar ninguna
de las partes de este mensaje. Si siendo destinatario de este mensaje no
consintiera el uso de correo electrónico, rogamos nos lo comunique
inmediatamente.
RBCDexia Investor Services E,S.A. y sus filiales no serán responsables de las
opiniones o informaciones incluidas en este mensaje salvo cuando el remitente
esté autorizado para establecer que dichas opiniones proceden de RBCDexia
Investor Services ,S.A. y sus filiales.
DISCLAIMER
Addressee/s identified herein. It may contain confidential or legally
privileged information. No confidentiality privilege is waived or lost by any
mistransmission. If you are not the intended recipient, please immediately
delete it and notify the sender. You must not, directly or indirectly,
disclose, distribute, print, or copy any part of this message.
If you are the addressee of this message and do not consent to the use of
e-mail, please communicate it to us immediately. RBCDexia Investor Services
S.A. and its subsidiaries are not responsible for the opinions or information
included in this message except when the sender is authorised to state them to
be the views of RBCDexia Investor Services, S.A. and its subsidiaries.
__________________________________________________
Forum.HELP400 es un servicio más de NEWS/400.
© Publicaciones Help400, S.L. - Todos los derechos reservados
http://www.help400.es _____________________________________________________
Para darte de baja visita la siguente URL:
http://coyote.combios.es/mailman/listinfo/forum.help400
/*------------------------------------------------------------------*/
/*------------------------------------------------------------------*/
pgm
/*--------------------------------------------------------*/
/* declaration */
/*--------------------------------------------------------*/
DCL VAR(&RCVVAR) TYPE(*CHAR) LEN(1024)
DCL VAR(&RCVLEN) TYPE(*CHAR) LEN(4) +
VALUE(X'00000400')
DCL VAR(&FORMAT) TYPE(*CHAR) LEN(10) +
VALUE(DEVD0600)
DCL VAR(&TCPIP) TYPE(*CHAR) LEN(2) VALUE(X'02')
DCL VAR(&IPADDR) TYPE(*CHAR) LEN(15)
DCL VAR(&PORT) TYPE(*DEC) LEN(5)
DCL VAR(&PORTBIN) TYPE(*CHAR) LEN(2)
DCL VAR(&PORTCHAR) TYPE(*CHAR) LEN(5)
DCL VAR(&DEVD) TYPE(*CHAR) LEN(10)
DCL VAR(&ERRDTA) TYPE(*CHAR) LEN(116)
DCL VAR(&ERRLEN) TYPE(*CHAR) LEN(4) +
VALUE(X'00000074')
DCL VAR(&ERRAVL) TYPE(*DEC) LEN(15)
DCL VAR(&BIN4) TYPE(*CHAR) LEN(4)
DCL VAR(&MSG) TYPE(*CHAR) LEN(200)
DCL VAR(&ERROR) TYPE(*LGL) /* std err */
DCL VAR(&MSGID) TYPE(*CHAR) LEN(7) /* std err */
DCL VAR(&MSGKEY) TYPE(*CHAR) LEN(4) /* std err */
DCL VAR(&MSGDTA) TYPE(*CHAR) LEN(100) /* std err */
DCL VAR(&MSGF) TYPE(*CHAR) LEN(10) /* std err */
DCL VAR(&MSGFLIB) TYPE(*CHAR) LEN(10) /* std err */
DCL VAR(&MSGTYP) TYPE(*CHAR) LEN(10) +
VALUE('*DIAG') /* std err */
DCL VAR(&MSGTYPCTR) TYPE(*CHAR) LEN(4) +
VALUE(X'00000001') /* std err */
DCL VAR(&PGMMSGQ) TYPE(*CHAR) LEN(10) VALUE('*') +
/* std err */
DCL VAR(&STKCTR) TYPE(*CHAR) LEN(4) +
VALUE(X'00000001') /* std err */
DCL VAR(&ERRBYTES) TYPE(*CHAR) LEN(4) +
VALUE(X'00000000') /* std err */
MONMSG MSGID(CPF0000) EXEC(GOTO CMDLBL(ERROR))
/*--------------------------------------------------------*/
/* Get my device */
/*--------------------------------------------------------*/
RTVJOBA JOB(&DEVD)
CHGVAR VAR(&RCVVAR) VALUE(' ')
CHGVAR VAR(&ERRDTA) VALUE(&ERRLEN)
CALL PGM(QDCRDEVD) PARM(&RCVVAR &RCVLEN &FORMAT +
&DEVD &ERRDTA)
CHGVAR VAR(&BIN4) VALUE(%SST(&ERRDTA 5 4))
CHGVAR VAR(&ERRAVL) VALUE(%BIN(&BIN4))
RMVMSG CLEAR(*ALL)
/*----------------------------------------------*/
/* Error found on the API, skip */
/*----------------------------------------------*/
IF COND(&ERRAVL > 0) THEN(DO)
CHGVAR VAR(&ERRDTA) VALUE(%SST(&ERRDTA 1 &ERRAVL))
CHGVAR VAR(&MSGID) VALUE(%SST(&ERRDTA 9 7))
CHGVAR VAR(&MSGDTA) VALUE(%SST(&ERRDTA 17 100))
GOTO CMDLBL(END)
ENDDO
/*--------------------------------------------------------*/
/* Get the IP address for TCP/IP device. */
/* Network Protocol must equal = x02 (pos 859) */
/*--------------------------------------------------------*/
IF COND(%SST(&RCVVAR 859 1) *NE &TCPIP) +
THEN(GOTO CMDLBL(END))
CHGVAR VAR(&PORTBIN) VALUE(%SST(&RCVVAR 860 2))
CHGVAR VAR(&PORT) VALUE(%BIN(&PORTBIN))
CHGVAR VAR(&PORTCHAR) VALUE(&PORT)
CHGVAR VAR(&IPADDR) VALUE(%SST(&RCVVAR 878 15))
/*--------------------------------------------------------*/
/* Display the information */
/*--------------------------------------------------------*/
CHGVAR VAR(&MSG) VALUE('Dispositivo:' *BCAT &DEVD +
*BCAT 'Puerto:' *BCAT &PORTCHAR *BCAT +
'Direccion IP:' *BCAT &IPADDR)
SNDPGMMSG MSG(&MSG)
GOTO CMDLBL(END)
/*--------------------------------------------------------*/
/* error routine: */
/*--------------------------------------------------------*/
error:
IF COND(&ERROR) THEN(GOTO CMDLBL(ERRORDONE))
ELSE CMD(CHGVAR VAR(&ERROR) VALUE('1'))
/*----------------------------------------------*/
/* move all *DIAG message to *PRV program queue*/
/*----------------------------------------------*/
CALL PGM(QMHMOVPM) PARM(&MSGKEY &MSGTYP +
&MSGTYPCTR &PGMMSGQ &STKCTR &ERRBYTES)
/*----------------------------------------------*/
/* resend the last *ESCAPE message */
/*----------------------------------------------*/
errordone:
CALL PGM(QMHRSNEM) PARM(&MSGKEY &ERRBYTES)
MONMSG MSGID(CPF0000) EXEC(DO)
SNDPGMMSG MSGID(CPF3CF2) MSGF(QCFPMSG) +
MSGDTA('QMHRSNEM') MSGTYPE(*ESCAPE)
MONMSG MSGID(CPF0000)
ENDDO
END: ENDPGM