Trucs et Astuces - AS400 - Tips and Tricks
page d'accueil
Boite à outils

RTVTCPADR Retrieve TCP address / écran
Table des matières
/*********************************************************************/ /* Retrieve/display TCP/IP addresses for pass-through devices */ /*********************************************************************/ /* */ /* Check for / install these PTFs or supercedes on your system */ /* to get support for the additional fields in the QDCRDEVD API */ /* DEVD0600 format: */ /* */ /* OS/400 V3R2 LICPGM 5763SS1 PTF SF44503 */ /* OS/400 V3R7 LICPGM 5716SS1 PTF SF44312 */ /* */ /* Additional information about these PTFs (cover letters) can be */ /* found at IBM's web site: */ /* */ /* www.as400service.ibm.com */ /* */ /* For additional information about the QDCRDEVD API, see the IBM */ /* manual "OS/400 Configuration APIs" */ /*********************************************************************/ /* Copyright (c) Craig Pelkie, 1997 */ /* ALL RIGHTS RESERVED */ /* */ /* Craig Pelkie */ /* Bits & Bytes Programming */ /* PO Box 1473 */ /* Valley Center, CA 92082-1473 */ /* craig@ca400.com */ /*********************************************************************/ rtvtcpaddr: pgm &RTVDEV dcl &bytesprov *char 4 /* Bytes Provided */ + value(x'00000010') /* 16 byte structure*/ dcl &ctld *char 10 /* Controller desc */ dcl &devnam *char 10 /* Device name */ dcl &error *char 16 /* Error field */ dcl &msg *char 150 /* Displayed msg */ dcl &port *dec len(5 0) /* Port number */ dcl &portbin *char 2 /* Port (binary) */ dcl &portchar *char 5 /* Port number */ dcl &protocol *char 1 /* Network protocol */ + value(x'02') /* TCP/IP protocol */ dcl &rcvvar *char 1024 /* Receiver var */ dcl &rtvdev *char 10 /* Dev to retrieve */ dcl &rtvdevno *dec len(4 0) /* Device number */ dcl &rtvdevnoc *char 4 /* Device number */ dcl &tcpaddr *char 15 /* TCP/IP address */ /*********************************************************************/ /* Initialize "bytes provided" subfield in Error Code structure */ /*********************************************************************/ chgvar %sst(&error 1 4) value(&bytesprov) /*********************************************************************/ /* Create pass-through device ID in loop. Start at 'QPADEV0001', */ /* end after 'QPADEV0250'. This is incremented in the loop. */ /*********************************************************************/ /* */ /* chgvar &rtvdevno 0 */ /* */ /*loop: */ /* */ /* chgvar &rtvdevno value(&rtvdevno + 1) */ /* if (&rtvdevno *gt 250) then(return) */ /* */ /* chgvar &rtvdevnoc &rtvdevno */ /* chgvar &rtvdev value('QPADEV' *cat &rtvdevnoc) */ /*********************************************************************/ /* Call the Retrieve Device Description API, format DEVD0600 */ /* to retrieve information about selected device */ /*********************************************************************/ chgvar &rcvvar ' ' call qdcrdevd parm( + &rcvvar /* Receiver variable */ + x'00000400' /* Length of &rcvvar (1024)*/ + 'DEVD0600' /* Format to receive */ + &rtvdev /* Device ID to retrieve */ + &error) /* Error field */ DMPCLPGM IF COND(%SST(&ERROR 9 7) *NE ' ') THEN(DO) SNDPGMMSG MSGID(%SST(&ERROR 9 7)) MSGF(QCPFMSG) + MSGTYPE(*ESCAPE) ENDDO /*********************************************************************/ /* Extract values from receiver variable if retrieved device */ /* is a TCP/IP device (position 859, network protocol = x'02') */ /*********************************************************************/ chgvar &devnam %sst(&rcvvar 22 10) if (&devnam *eq ' ') then(return) if ((%sst(&rcvvar 859 1) *ne &protocol)) + then(RETURN) chgvar &ctld %sst(&rcvvar 205 10) chgvar &portbin %sst(&rcvvar 860 2) chgvar &port %bin(&portbin) chgvar &portchar &port chgvar &tcpaddr %sst(&rcvvar 877 15) /*********************************************************************/ /* Format/display message */ /*********************************************************************/ chgvar &msg value( + ' Device: ' *cat &devnam *tcat + ' Ctld: ' *cat &ctld *tcat + ' Port: ' *cat &portchar *tcat + ' Address: ' *cat &tcpaddr) /* SNDPGMMSG MSG(&MSG) TOPGMQ(*EXT) MSGTYPE(*DIAG) */ /* SNDPGMMSG MSG(&MSG) TOPGMQ(*EXT) */ SNDPGMMSG MSG(&MSG) /* goto loop */ endpgm
|
RTVTCPADRP retrieve TCP Address / Printer
Table des matières
/*********************************************************************/ /* Retrieve/display TCP/IP addresses for pass-through devices */ /*********************************************************************/ /* */ /* Check for / install these PTFs or supercedes on your system */ /* to get support for the additional fields in the QDCRDEVD API */ /* DEVD0600 format: */ /* */ /* OS/400 V3R2 LICPGM 5763SS1 PTF SF44503 */ /* OS/400 V3R7 LICPGM 5716SS1 PTF SF44312 */ /* */ /* Additional information about these PTFs (cover letters) can be */ /* found at IBM's web site: */ /* */ /* www.as400service.ibm.com */ /* */ /* For additional information about the QDCRDEVD API, see the IBM */ /* manual "OS/400 Configuration APIs" */ /*********************************************************************/ /* Copyright (c) Craig Pelkie, 1997 */ /* ALL RIGHTS RESERVED */ /* */ /* Craig Pelkie */ /* Bits & Bytes Programming */ /* PO Box 1473 */ /* Valley Center, CA 92082-1473 */ /* craig@ca400.com */ /*********************************************************************/ rtvtcpaddr: pgm &RTVDEV dcl &bytesprov *char 4 /* Bytes Provided */ + value(x'00000010') /* 16 byte structure*/ dcl &ctld *char 10 /* Controller desc */ dcl &devnam *char 10 /* Device name */ dcl &error *char 16 /* Error field */ dcl &msg *char 150 /* Displayed msg */ dcl &port *dec len(5 0) /* Port number */ dcl &portbin *char 2 /* Port (binary) */ dcl &portchar *char 5 /* Port number */ dcl &protocol *char 1 /* Network protocol */ + value(x'02') /* TCP/IP protocol */ dcl &rcvvar *char 2048 /* Receiver var */ dcl &rtvdev *char 10 /* Dev to retrieve */ dcl &rtvdevno *dec len(4 0) /* Device number */ dcl &rtvdevnoc *char 4 /* Device number */ dcl &tcpaddr *char 15 /* TCP/IP address */ dcl &rmtlctyp *char 10 /* Remote local Type */ /*********************************************************************/ /* Initialize "bytes provided" subfield in Error Code structure */ /*********************************************************************/ chgvar %sst(&error 1 4) value(&bytesprov) /*********************************************************************/ /* Create pass-through device ID in loop. Start at 'QPADEV0001', */ /* end after 'QPADEV0250'. This is incremented in the loop. */ /*********************************************************************/ /* */ /* chgvar &rtvdevno 0 */ /* */ /*loop: */ /* */ /* chgvar &rtvdevno value(&rtvdevno + 1) */ /* if (&rtvdevno *gt 250) then(return) */ /* */ /* chgvar &rtvdevnoc &rtvdevno */ /* chgvar &rtvdev value('QPADEV' *cat &rtvdevnoc) */ /*********************************************************************/ /* Call the Retrieve Device Description API, format DEVD0600 */ /* to retrieve information about selected device */ /*********************************************************************/ chgvar &rcvvar ' ' call qdcrdevd parm( + &rcvvar /* Receiver variable */ + x'00000600' /* Length of &rcvvar (1024)*/ + 'DEVD1100' /* Format to receive */ + &rtvdev /* Device ID to retrieve */ + &error) /* Error field */ IF COND(%SST(&ERROR 9 7) *NE ' ') THEN(DO) SNDPGMMSG MSGID(%SST(&ERROR 9 7)) MSGF(QCPFMSG) + MSGTYPE(*ESCAPE) ENDDO /*********************************************************************/ /* Extract values from receiver variable if retrieved device */ /* is a TCP/IP device (position 1386, network protocol = x'02') */ /*********************************************************************/ chgvar &devnam %sst(&rcvvar 22 10) if (&devnam *eq ' ') then(return) /* chgvar &ctld %sst(&rcvvar 213 10) */ /* chgvar &portbin %sst(&rcvvar 1387 2) */ /* chgvar &port %bin(&portbin) */ /* chgvar &portchar &port */ chgvar &rmtlctyp %SST(&rcvvar 1331 10) chgvar &tcpaddr %sst(&rcvvar 1065 15) /*********************************************************************/ /* Format/display message */ /*********************************************************************/ chgvar &msg value( + ' Device: ' *cat &devnam *tcat + ' Type: ' *cat &rmtlctyp *tcat + ' Address: ' *cat &tcpaddr) /* SNDPGMMSG MSG(&MSG) TOPGMQ(*EXT) MSGTYPE(*DIAG) */ /* SNDPGMMSG MSG(&MSG) TOPGMQ(*EXT) */ SNDPGMMSG MSG(&MSG) /* goto loop */ endpgm
|
The
source code is
provided as an open source tool under the GNU
General Public License,
version 2.
In summary, this
license specifies:
- The code is under copyright
- The code can be used internally by
organizations for in-house projects free of charge
- The code may not be included in products that
are sold commercially
- If the code is distributed in other open source
projects, fixes and enhancements to this project must be provided back
to this project
last version : The SaveFiles
THIS TOOLBOX IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
NO EVENT SHALL THE PROVIDER OR ITS CONTRIBUTORS BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
IN ANY WAY OUT OF THE USE OF THIS TOOLBOX, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.