/* REXX *** */ tid= SYSVAR(SYSTERMID) /* get terminal id */ /* code depends on MVS version */ mvs= MVSVAR(SYSMVS) If mvs < 'SP6.0.5' then , use24 = 1 else Do use24 = 0 Address Linkmvs 'ISPQRY' If mvs < 'SP6.0.9' then , If rc = 0 then Do Say 'This function does not work under ISPF' Exit 4 End End IF LEFT(tid,3) = 'TCP' then DO /* Our TCP/IP terminal ids look like */ /* TCPxxyyy */ /* where xx is the host */ /* and yyy is a sequence nmbr */ tcpid = RIGHT(tid,3) hxtcp = D2X(tcpid,4) 'NEWSTACK' PUSH 'filler filler Unknown' /* stack never empty */ If use24 then , Selval = hxtcp else , Selval = 'LUN TCP00'tcpid ADDRESS TSO , 'NETSTAT TELNET STACK ('Selval /* ask TCP/IP */ PULL t 'DELSTACK' IF LEFT(t,2) = 'EZ' then ixip = 3 /* adjust for msgid */ else ixip = 2 ixid = ixip+5 If use24 Then Do ixip = ixip + 1 /* adjust offset */ test = RIGHT(WORD(t,ixid),3) /* terminal id */ ip=WORD(t,ixip) End Else Do test = SUBSTR(WORD(t,ixid),6,3) /* lu name */ sock=WORD(t,ixip) PARSE VAR sock ip'..'port /* remove port */ End IF test = tcpid then , SAY 'Your IP address is 'ip else DO SAY 'I don''t know what your IP address is' SAY 'unless it is 'ip EXIT 8 END EXIT 0 END SAY 'I don''t know what your IP address is' EXIT 4