En utilisant sys_context fonction, nous pouvons obtenir le nom d’hôte et l’adresse IP de la session en cours SQL > sélectionner sys_context('userenv', 'host') de dual ; SYS_CONTEXT('USERENV', 'HOST') -------------------------------------------------------------- GROUPE DE TRAVAIL\IBM-L3YMBNP SQL > sélectionner sys_context('userenv', 'ip_address') de dual ; SYS_CONTEXT('USERENV','IP_ADDRESS') -----------------------------------------------------------
127.0.0.1 À sys_context nous ne pouvons obtenir que les informations de la session en cours, que se passerait-il si nous voulions en avoir d’autres ? À ce moment-là, nous utilisons utl_inaddr pack pour l’obtenir SQL > sélectionner utl_inaddr.get_host_address('IBM-L3YMBNP') à partir de dual ; UTL_INADDR. GET_HOST_ADDRESS('IBM-L3YMBNP') -------------------------------------------------------------------
9.181.142.152 Et nous pouvons aussi obtenir des IP pour SINA et d’autres sites web SQL > sélectionner utl_inaddr.get_host_address('www.sina.com.cn') depuis double ; UTL_INADDR. GET_HOST_ADDRESS('WWW. SINA.COM. CN') ---------------------------------------------------------------------
218.30.108.55 Le principe consiste d’abord à obtenir le serveur de résolution de noms de domaine (resolv.conf), puis à déterminer l’ordre de résolution à partir du fichier host.conf, car par défaut il faut prioriser la résolution du fichier hôte, puis continuer à lire le fichier /etc/hosts. Si le fichier hôte a une relation d’analyse, il renvoie des informations ; Si elle n’existe pas, continuez à demander au serveur DNS d’obtenir l’adresse de résolution, et si elle ne peut pas, une erreur se produira SQL > sélectionner utl_inaddr.get_host_address('www.a.com') à partir de dual ; sélectionnez utl_inaddr.get_host_address('www.a.com') depuis double * ERROR est sur la ligne 1 :
ORA-29257: 未知的主机 www.a.com
ORA-06512: 在"SYS.UTL_INADDR", line 35
ORA-06512: 在"SYS.UTL_INADDR", line 40
ORA-06512: 在line 1 C’est à peu près tout. |