Usando sys_context função, podemos obter o nome do host e o endereço IP da sessão atual SQL> selecionar sys_context('userenv', 'host') de dual; SYS_CONTEXT('USERENV', 'HOST') -------------------------------------------------------------- GRUPO DE TRABALHO\IBM-L3YMBNP SQL> selecionar sys_context('userenv','ip_address') de dual; SYS_CONTEXT('USERENV','IP_ADDRESS') -----------------------------------------------------------
127.0.0.1 Em sys_context só conseguirmos obter as informações da sessão atual, e se quisermos ter outras sessões diferentes? Neste momento, usamos utl_inaddr pacote para pegá-lo SQL> selecionar utl_inaddr.get_host_address('IBM-L3YMBNP') a partir de dual; UTL_INADDR. GET_HOST_ADDRESS('IBM-L3YMBNP') -------------------------------------------------------------------
9.181.142.152 E também podemos obter IPs para SINA e outros sites SQL> selecione utl_inaddr.get_host_address('www.sina.com.cn') a partir de dual; UTL_INADDR. GET_HOST_ADDRESS('WWW. SINA.COM. CN') ---------------------------------------------------------------------
218.30.108.55 O princípio é primeiro obter o servidor de resolução de nomes de domínio (resolv.conf) e então determinar a ordem de resolução com base no arquivo host.conf, pois o padrão é priorizar a resolução do arquivo hosts e então continuar lendo o arquivo /etc/hosts. Se o arquivo hosts tiver uma relação de análise sintática, ele retorna informações; Se não existir, continue pedindo ao servidor DNS o endereço de resolução e, se não conseguir, um erro ocorrerá SQL> selecione utl_inaddr.get_host_address('www.a.com') de dual; selecione utl_inaddr.get_host_address('www.a.com') a partir de dual * ERRO está na linha 1:
ORA-29257: 未知的主机 www.a.com
ORA-06512: 在"SYS.UTL_INADDR", line 35
ORA-06512: 在"SYS.UTL_INADDR", line 40
ORA-06512: 在line 1 Basicamente é isso. |