AS400里怎样取得一个工作站的IP
2010-09-10 13:36
281 查看
利用 System API QSYS/QDCRDEVD (去QSYSINC/H下面去找那个API的参数) 取得 与工作站ID 对应的 IP address.
PGM1:(已经测试)
PGM2:一种是DSP显示的客户端,一种是PRT虚拟打印客户端的。(第二种情况未作测试)
PGM1:(已经测试)
PGM DCL VAR(&DEVICENAME) TYPE(*CHAR) LEN(10) DCL VAR(&IPADDRESS) TYPE(*CHAR) LEN(15) DCL VAR(&RECEIVER) TYPE(*CHAR) LEN(892) DCL VAR(&RCVRLENGTH) TYPE(*CHAR) LEN(4) DCL VAR(&FORMATNAME) TYPE(*CHAR) LEN(8) + VALUE('DEVD0600') /* THE FORMAT FOR + DISPLAY DEVICES */ DCL VAR(&ERRORCODE) TYPE(*CHAR) LEN(4) + VALUE(X'00000000') /* USE NORMAL ERROR + HANDLING */ DCL VAR(&OUTMSG) TYPE(*CHAR) LEN(512) RTVJOBA JOB(&DEVICENAME) CHGVAR VAR(%BIN(&RCVRLENGTH)) VALUE(892) CALL PGM(QDCRDEVD) PARM(&RECEIVER &RCVRLENGTH + &FORMATNAME &DEVICENAME &ERRORCODE) MONMSG MSGID(CPF0000) CHGVAR VAR(&IPADDRESS) VALUE(%SST(&RECEIVER 878 15)) CHGVAR VAR(&OUTMSG) VALUE(&DEVICENAME *BCAT ' IP + address is ' *CAT &IPADDRESS) SNDPGMMSG MSGID(CPF9898) MSGF(QSYS/QCPFMSG) + MSGDTA(&OUTMSG) TOPGMQ(*PRV) DLYJOB DLY(2) MONMSG MSGID(CPF0000) ENDPGM
PGM2:一种是DSP显示的客户端,一种是PRT虚拟打印客户端的。(第二种情况未作测试)
PGM DCL VAR(&DEVNAME) TYPE(*CHAR) LEN(10) DCL VAR(&DEVINFO) TYPE(*CHAR) LEN(1550) DCL VAR(&LENGTH) TYPE(*DEC) LEN(4 0) VALUE(1550) DCL VAR(&FMTNAME) TYPE(*CHAR) LEN(8) + VALUE(DEVD0600) DCL VAR(&IPADDR) TYPE(*CHAR) LEN(15) DCL VAR(&ERRINFO) TYPE(*CHAR) LEN(1024) DCL VAR(&PORTBIN4) TYPE(*CHAR) LEN(4) DCL VAR(&LPORT) TYPE(*DEC) LEN(5 0) DCL VAR(&LPORTC) TYPE(*CHAR) LEN(5) DCL VAR(&RPORT) TYPE(*DEC) LEN(5 0) DCL VAR(&RPORTC) TYPE(*CHAR) LEN(5) DCL VAR(&LCLADDR) TYPE(*CHAR) LEN(15) DCL VAR(&OUTMSG) TYPE(*CHAR) LEN(999) DCL VAR(&DEVTYPE) TYPE(*CHAR) LEN(10) + VALUE(' ') RTVJOBA JOB(&DEVNAME) CALL PGM(QSYS/QDCRDEVD) PARM(&DEVINFO &LENGTH + 'DEVD0100' &DEVNAME &ERRINFO) MONMSG MSGID(CPF0000) CHGVAR VAR(&DEVTYPE) VALUE(%SST(&DEVINFO 32 4)) IF COND(&DEVTYPE *EQ '*PRT ') THEN(CHGVAR + VAR(&FMTNAME) VALUE('DEVD1100')) CALL PGM(QSYS/QDCRDEVD) PARM(&DEVINFO &LENGTH + &FMTNAME &DEVNAME &ERRINFO) MONMSG MSGID(CPF0000) /* DISPLAY DEVICE */ IF COND(&DEVTYPE *EQ '*DSP ') THEN(DO) /* SET CLIENT IP ADDRESS */ CHGVAR VAR(&IPADDR) VALUE(%SST(&DEVINFO 878 15)) /* SET CLIENT TCP PORT */ CHGVAR VAR(%SST(&PORTBIN4 3 2)) VALUE(%SST(&DEVINFO + 860 2)) CHGVAR VAR(%SST(&PORTBIN4 1 2)) VALUE(X'0000') CHGVAR VAR(&RPORT) VALUE(%BIN(&PORTBIN4)) /* SET SERVER IP ADDRESS */ CHGVAR VAR(&LCLADDR) VALUE(%SST(&DEVINFO 958 15)) /* SET SERVER TCP PORT */ CHGVAR VAR(%SST(&PORTBIN4 3 2)) VALUE(%SST(&DEVINFO + 940 2)) CHGVAR VAR(%SST(&PORTBIN4 1 2)) VALUE(X'0000') CHGVAR VAR(&LPORT) VALUE(%BIN(&PORTBIN4)) CHGVAR VAR(&LPORTC) VALUE(&LPORT) ENDDO /* DISPLAY DEVICE TYPE */ /* PRINTER DEVICE */ IF COND(&DEVTYPE *EQ '*PRT ') THEN(DO) /* SET CLIENT IP ADDRESS */ CHGVAR VAR(&IPADDR) VALUE(%SST(&DEVINFO 1405 15)) /* SET CLIENT TCP PORT */ CHGVAR VAR(%SST(&PORTBIN4 3 2)) VALUE(%SST(&DEVINFO + 1387 2)) CHGVAR VAR(%SST(&PORTBIN4 1 2)) VALUE(X'0000') CHGVAR VAR(&RPORT) VALUE(%BIN(&PORTBIN4)) CHGVAR VAR(&RPORTC) VALUE(&RPORT) /* SET SERVER IP ADDRESS */ CHGVAR VAR(&LCLADDR) VALUE(%SST(&DEVINFO 1495 15)) /* SET SERVER TCP PORT */ CHGVAR VAR(%SST(&PORTBIN4 3 2)) VALUE(%SST(&DEVINFO + 1477 2)) CHGVAR VAR(%SST(&PORTBIN4 1 2)) VALUE(X'0000') CHGVAR VAR(&LPORT) VALUE(%BIN(&PORTBIN4)) CHGVAR VAR(&LPORTC) VALUE(&LPORT) ENDDO /* END OF PRINTER DEVICE TYPE SECTION */ /* SET OUTPUT MESSAGE */ CHGVAR VAR(&OUTMSG) VALUE('Telnet Client from ' + *CAT &IPADDR *CAT ' port:' *CAT &RPORTC + *CAT ' to local interface:' *BCAT + &LCLADDR *CAT ' port:' *CAT &LPORTC) SNDPGMMSG MSGID(CPF9898) MSGF(QSYS/QCPFMSG) + MSGDTA(&OUTMSG) TOPGMQ(*PRV) DLYJOB DLY(2) MONMSG MSGID(CPF0000) ENDPGM
相关文章推荐
- 怎样制作一个简单ip,以方便在Quartus II和Nios II中使用?.[Nios II][上]
- 怎样制作一个简单ip,以方便在Quartus II和Nios II中使用?.[Nios II][中]
- 8086汇编语言自学经验分享 取得一个标号的段地址CS与偏移地址IP
- 在一个表里添加了一记录,怎样取得这条记录的id
- 怎样写一个获取数据函数:用TCP/IP通讯,向服务端发送命令,并从服务端获得返回数据.
- 经常在网上搜怎样获得外网的ip,代码几乎都一样,但测试,都出现错误!最后找了一个既蠢既笨的终极解决方案
- 一个服务器ip怎样对应多个ssl证书
- 动态DNS——本质上是IP变化,将任意变换的IP地址绑定给一个固定的二级域名。不管这个线路的IP地址怎样变化,因特网用户还是可以使用这个固定的域名 这样看的话,p2p可以用哇
- Linux怎样在一个网卡中设置多个IP
- 怎样把一个无流量的站做到日5000IP以上
- [原创].怎样制作一个简单ip,以方便在Quartus II和Nios II中使用?
- 怎样用delphi制作一个IPhunter(独孤剑客的IP猎人)
- 怎样给电脑添加一个IP
- 怎样用delphi制作一个IPhunter(独孤剑客的IP猎人)
- 怎样用delphi制作一个IPhunter(独孤剑客的IP猎人)
- 怎样制作一个简单ip,以方便在Quartus II和Nios II中使用?.[Nios II][下]
- 怎样用delphi制作一个IPhunter(独孤剑客的IP猎人)
- [转载].怎样制作一个简单ip,以方便在Quartus II和Nios II中使用?
- 如果一个域名对应多个IP,取得指定IP下的网页内容
- 一个取得客户端IP的函数