     H NOMAIN EXPROPTS(*RESDECPOS)                                                                  
      * PROGRAM - GETIP                                                                             
      * PURPOSE - Get IP address                                                                    
      * WRITTEN - 02/14/17                                                                          
      * AUTHOR  - Jamie Flanary                                                                     
         // -------------------- Data Structures --------------------                               
     d Apierror        ds                  Qualified                                                
     d BytesProvided                 10i 0 Inz(%size(Apierror))                                     
     d BytesAvailable                10i 0 Inz(0)                                                   
     d MessageID                      7a   Inz                                                      
     d Rsvd                           1a   Inz                                                      
     d MessageData                 1024a   Inz                                                      
                                                                                                    
     d MyData          ds                  qualified                                                
     d Ip_Address                    16a   overlay(MyData:878)                                      
                                                                                                    
     d psds           sds                                                                           
     d                                     Qualified                                                
     d  PgmName          *Proc                                                                      
     d  DeviceID                     10A   Overlay(PSDS: 244)                                       
     d  JobUser                      10A   Overlay(PSDS: 254)                                       
                                                                                                    
        // ------------------ Standalone Variables -----------------                                
     d TheIPAddress    s             15    inz                                                      
     d Net_Address     s             20A   INZ                                                      
     d Format          s              8A   Inz('DEVD0600')                                          
     d Rcvar           s           5000A   Inz                                                      
     d Varlen          s             10i 0 Inz(5000)                                                
                                                                                                    
       // ---------------------- Constants ------------------------                                 
     d Q               c                   Const('''')                                              
     d standardlen     c                   Const(36)                                                
       // ---------------------- Indicators -----------------------                                 
       //==============================================================*                            
       //   PROTOTYPES                                                 *                            
       //--------------------------------------------------------------*                            
                                                                                                    
      /copy qprcsrc,GETIP_CP                                                                        
                                                                                                    
     d $getipaddress   pr                  extpgm('QDCRDEVD')                                       
     d   rcvar                     5000                                                             
     d   varlen                      10i 0                                                          
     d   format                       8                                                             
     d   @job                        10                                                             
     d   apierror                   256                                                             
                                                                                                    
        //==============================================================*                           
        //              PROCEDURE INTERFACE                             *                           
        //--------------------------------------------------------------*                           
     pGetIPAddress     B                   Export                                                   
     dGetIPAddress     PI            16A                                                            
                                                                                                    
      /free                                                                                         
                // Retrieve IP address of device: must be interactive call to get IP address        
                $getipaddress( rcvar   :                                                            
                               varlen  :                                                            
                               format  :                                                            
                               psds.DeviceID:                                                       
                               Apierror                                                             
                                        );                                                          
                                                                                                    
                                                                                                    
                if ApiError.MessageID =  *blanks;                                                   
                 MyData.Ip_Address = %subst(Rcvar:878:15);                                          
                endif;                                                                              
                                                                                                    
                                                                                                    
                Return MyData.Ip_Address;                                                           
                                                                                                    
      /end-free                                                                                     
                                                                                                    
     PGetIPAddress     E                                                                            
