Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Temas relacionados > Redes
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-05-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
¿Packet Sniffer? Cómo saber quien tiene definida un IP Virtual...

Se trata de una red con bastantes ordenadores. Todos ellos tienen direcciones 192.168.80.20, 192.168.80.21, 192.168.80.23,....
Al instalar un dispositivo nuevo en la red en una dirección 192.168.31.55(*) nos hemos dado cuenta de que está dando conflictos de Red por IP. Debe haber algun equipo que tiene definida una IP virtual que coincide con esta (*).

Si haces ping funciona a esta IP (*). Y esa IP sólo tiene abierto un puerto (el 8081), donde se va grabando un LOG; Si accedes por HTTP a la dirección: 192.168.31.55:8081 obtienes esto:

-------------------------------------------------------------
ePolicy Orchestrator Agent Version - 2.5.0.168

20030129083257: Agent: Generating Agent private key...
20030129083258: Agent: Generating Agent public key...
20030129083258: Agent: Updating plug-in DLLs
20030129083258: Agent: Agent service is now running
20030129083258: Agent: Checking MAC address...
20030129083258: Agent: Checking computer name...
20030129083258: Agent: Generating Agent ID...
........ continua

-------------------------------------------------------------

Se trata de un programita de la casa McAfree (no es nada malo), el problema es que no sabemos qué ordenador está grabando ese log en esa dirección. Todos los ordenadores tienben McAfee y alguno debe tener esta característica activada.

EL PROBLEMA: Nos gustaría saber qué ordenador es el que tiene definida esa IP virtual (para cambiarla o desactivar esta característica y que desaparezcan los conflictos). ¿Alguna idea?
He puesto en el título lo de "Packet Sniffer", porque no he usado ninguno y no se si algun programa de este tipo nos podría dar la solución (quien está enviando pauqtes a esa dirección) ¿Es así?
¿Hay alguna otra cosa más sencilla?

Como véis no "domino" mucho el tema de redes, así que a ver si me podéis echar un cable.

Gracias.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #2  
Antiguo 11-05-2007
Avatar de white_zombie
[white_zombie] white_zombie is offline
Miembro Premium
 
Registrado: nov 2005
Ubicación: Zaragoza - España
Posts: 187
Poder: 19
white_zombie Va por buen camino
Si he entendido bien consigues hacer un ping al ordenador que no sabes donde esta no?

Si esto es asi tal vez te sirva saber el nombre de ese ordenador, hay escaneadores de puertos y sniffers que ademas de la IP te dan el nombre del equipo.

Un escaneador de puertos sencillo es el superscan, uno muy potente es el http://insecure.org/nmap/download.html y el mejor sniffer que conozco es el wireshark (antes llamado ethereal) http://www.wireshark.org/download.html.

Con wireshark si tu red esta hecha con hubs y no con switch puede ver todo el trafico de la red, es una buena forma de espiar lo que hacen los trabajadores.
Responder Con Cita
  #3  
Antiguo 11-05-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
¿De cuantos ordenadores estamos hablando? ¿se podría ir mirando uno por uno, o son demasiados?

Yo en redes no estoy mucho mas preparado que tu Neftali, así que solo se me ocurren soluciones muy simples. Por ejemplo, ir equipo por equipo haciendo "ipconfig /all" hasta encontrar el que esta usando esa ip.

Por otro lado se me ocurre usar un script, pero entonces habría que saber como esta montada la red, y si existe la posibilidad de ejecutar un script en todos los equipos de forma automatica.

También se me ocurre obtener la MAC a partir de la ip, pero si no conoces la MAC de todos los equipos de poco nos va a valer , además si esta es "virtual" vete a saber cual nos devuelve.

Lo que si no entiendo muy bien, es como piensas usar el sniffer, si los ordenadores están conectados a través de un switch y no de un hub, algo de lo mas logico, el sniffer te servirá de poco porque solo veras los paquetes que entran y salen de tu propia maquina
Responder Con Cita
  #4  
Antiguo 11-05-2007
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
Si tienes un hub sólo te queda hacer lo que ha dicho seoane: ipconfig de cada equipo hasta dar con el que tenga definida la dirección.
Si tienes un swith/varios switches, prueba esto:
ejecuta desde una ventana de comandos
tracert 192.168.31.55 --> Editado para poner la ip

te dará las direcciones de los dispositivos por los que pasa.

Alguna de las direcciones será un switch
ejecuta
telnet dirección_switch --> Editado para aclara la ip

en teoría y si no es un switch de chichinabo, tendrías que abrir una sesión en el mismo. Ahí, tirando de manula deberías encontrar los comandos que visualicen el tráfico del mismo, y creo que encontrarías la boca del switch en la que estaría conectado el 'parato' en cuestión.

Si no es así, me dices para que pregunte a los boys de Comunicaciones del currelo.

Ya nos dirás.

Saludos
PD: Te recomiendo el mitico INVENTARIO de la red, en la que registres los datos mínimos de los equipos. Otra opción es poner un servidor DHCP para no volverte loco, o definir rangos de ip's para distintas zonas del edificio. Por lo menos los disparos serían aproximados.
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -

Última edición por fjcg02 fecha: 12-05-2007 a las 01:41:24.
Responder Con Cita
  #5  
Antiguo 12-05-2007
sinalocarlos sinalocarlos is offline
Miembro
 
Registrado: sep 2006
Posts: 152
Poder: 18
sinalocarlos Va por buen camino
perdon por insistir

http://img513.imageshack.us/my.php?image=pingsy4.png

no se si este entendiendo lo que se pretende hacer?
Responder Con Cita
  #6  
Antiguo 14-05-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por sinalocarlos
perdon por insistir
Gracias, pero el -a no devuelve el nombre.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #7  
Antiguo 14-05-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por white_zombie
Si esto es asi tal vez te sirva saber el nombre de ese ordenador, hay escaneadores de puertos y sniffers que ademas de la IP te dan el nombre del equipo.
Estoy con alguno de ellos, pero ni los que revisan los equipos de la red, ni los que escanean puertos ni demás me dan respuesta.
Parece que sólo tenga activo el puerto 8081 que por donde se accede a esa especie de Log.

Sin nombre y sin nada más...

Gracias.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #8  
Antiguo 14-05-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por seoane
¿De cuantos ordenadores estamos hablando? ¿se podría ir mirando uno por uno, o son demasiados?
Demasiados.
Y de distintas delegaciones.
Digamos que esa opción es la última de las últimas...

Cita:
Empezado por seoane
...además si esta es "virtual" vete a saber cual nos devuelve.
todo ceros...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #9  
Antiguo 14-05-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por fjcg02
...te dará las direcciones de los dispositivos por los que pasa.
...telnet
Gracias por los comentarios.
El tracert da dos pasos; El servidor de la red y el equipo en cuestión.
El telnet nada.

El resto de cosas que he intentado por ahora me dan "Port unreachable".
Parece como si fuera un equipo con sólo el puerto 8081 abierto y nada más presente; De ahí que nos llevó a pensar que fuera una IP virtual. Cualquier otra cosas que se intenta no funciona. Además de que sabemos que no hay ningun equipo así...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #10  
Antiguo 14-05-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
He estado haciendo algunas pruebecillas con WireShark, pero ya os he dicho, que esto no es lo mío y hay cosas que me "suenan a chino"...

El ping bien, pero el resto (Tracert, ping -a,...) dan como respuesta, error, puerto no accesible y similares...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #11  
Antiguo 14-05-2007
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
He preguntado por ahi, y la cosa está difícil.
Como te responde el ping, quiere decir que alguna maquina tiene esa ip.
Yo miraría en las que acaban en 192.168.31.5* ( 51, 52, 53, ...) ya que es posible que sea un error de introducción de datos, y sea una 'colada' del que ha configurado la red y tenga la ip equivocada.

Eso por un lado

Por otro, no sé si puedes ejecutar un script en todos los equipos de la red, en el que compruebes la ip y abra un mensaje, o mande un mensaje a alguien que contenga el nombre del equipo.
Puedes mirar en la clave del registro ( estoy suponiendo que es guindous)
hkLocalMachine\system\CurrentControlSet\Services\Tcpip\parameters\interfaces\CLAVES NUMERICAS\ valor REG_MULTI_SZ , que es la que contiene la ip

Te cuento lo que hacemos nosotros, por si te vale de ayuda en un futuro:
Cuando instalamos un pc, forzamos la macadress, de manera que coincidan los ultimos nºs con la etiqueta de inventario del pc. De esta manera, puedes saber cual es el equipo que falla.
si haces un ping a un equipo y luego haces arp -a, te devuelve la mac, por lo que si está bien puesta, sabrías el equipo. en tu caso parece que te pone 000000000000, pero al menos, si haces ping al resto de los equipos, por eliminación podrías saberlo.

Suerte y un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #12  
Antiguo 14-05-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Estaba dándole vueltas, y se me ocurrió algo que puede que sea una tontería. Tanto VitualPC como VMWare permiten utilizar la tarjeta de red del equipo "host" en el equipo virtual, de tal modo que el equipo virtualizado se conecta directamente a la red.

Se me ocurre entonces que si alguno de los equipos tiene instalado VMware o VirtualPC, unos de los equipos virtuales este utilizando esa ip. Eso seria un problema, porque ni siquiera utilizando ipconfig en el equipo "host" podríamos averiguarlo.

Lo dicho, puede ser una tontería. Yo mas bien intentaría enterarme de si el programa ese, el que escucha por ese puerto, tiene algún protocolo que puedas usar y que te pueda dar mas datos.

PD: Nunca se aprecian lo bastante los scripts hasta que aparece un caso como este Que bonito seria ejecutar un script en todos los equipos a la vez y así descubrir al traidor
Responder Con Cita
  #13  
Antiguo 14-05-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por fjcg02
Como te responde el ping, quiere decir que alguna maquina tiene esa ip.
Yo miraría en las que acaban en 192.168.31.5* ( 51, 52, 53, ...) ya que es posible que sea un error de introducción de datos, y sea una 'colada' del que ha configurado la red y tenga la ip equivocada.
Gracias.
No parece que vayan por ahí los tiros, ya que no se configuran máquinas con esas direcciones.
Además con las pruebas que estoy haciendo, cada vez más me hacen inclinarme porque no es un rdenador, sino otro de los dispositivos conectados a la red o alguna configuración virtual que no "responde" con un PC.

¿Porqué lo digo?
Mirad, mientras un PC normal responde a algunas pruebas con esto (bastante similar en todos):


Esta IP responde con esto:


Y es una estructura similar a como responden dispositivos como las impresoras que tienen un IP configurada. Que como es normal no devuelven toda la información que devolvería un PC.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #14  
Antiguo 14-05-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por seoane
Tanto VitualPC como VMWare permiten utilizar la tarjeta de red del equipo "host" en el equipo virtual, de tal modo que el equipo virtualizado se conecta directamente a la red.

Lo dicho, puede ser una tontería. Yo mas bien intentaría enterarme de si el programa ese, el que escucha por ese puerto, tiene algún protocolo que puedas usar y que te pueda dar mas datos.
No creo que sea en absoluto una tontería Seoane; Es más es una de las opciones que desde el principio tengo en mente, ya que yo he utilizado mucho esos programas, pero pensé que de alguna forma estarían "ligados" al host.
Además a todos los efectos esas IP's responden como equipos normales instalados en la RED, mientras que esta dirección no lo parece.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #15  
Antiguo 14-05-2007
Avatar de white_zombie
[white_zombie] white_zombie is offline
Miembro Premium
 
Registrado: nov 2005
Ubicación: Zaragoza - España
Posts: 187
Poder: 19
white_zombie Va por buen camino
Hola, te recomiendo que uses el escaneador de puertos Nmap, con este escaneador podras saber si esa direccion pertenece a un PC o a otro aparato como una impresora.

Tiene multiples opciones y entre ellas esta sacar el sistema operativo y los servicios que esta usando la maquina.

El programa se utiliza con la consola de comandos de windows pero existe una version con interfaz grafica llamada NmapW.

Aqui hay un manual completo en españolhttp://insecure.org/nmap/man/es/

Esta es una prueba que acabo de hacer con un PC y una impresora laser que esta conectada en red.


Responder Con Cita
  #16  
Antiguo 14-05-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por white_zombie
Hola, te recomiendo que uses el escaneador de puertos Nmap, con este escaneador podras saber si esa direccion pertenece a un PC o a otro aparato como una impresora.
Gracias.
Me da la impresión de que es similar a la utilidad que os he mostrado más arriba; Si te fijas en la imagen también da todo tipo de información acerca del sistema, puertos, usuarios, dominios,...

De todas forma voy a probarla.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #17  
Antiguo 14-05-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
He probado con los mismos parámetros que tú y los datos obtenidos son:



La información que ya conocía; Que parece que esa dirección el único puerto que tiene abierto es el 8081; Y que es este caso habla del servicio "blackice-icecap", pero que debe ser que este servicio habitualmente se instala ahí y por eso devuelve eso.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #18  
Antiguo 14-05-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Algo más de info.

Avanzando un poco...
Parece que en alguna máquina está instalado el EPO Server de McAfee.
Que genera estos logs.
Con una búsqueda en Google, se pueden encontrar páginas donde se muestra un Log parecido al que coloqué yo al iniciao del post.

Lo que me quedaría saber ahora es en qué máquina está instalado (si es posible claro...) ese servicio.
Supongo (me imagino yo....) que debe hacer algo similar a lo que ha comentado Seoane que hace VMWare; Que cuando lo instalas en una máquina añade una "tarjeta virtual de red" con esa dirección.

Lo que no me acaba de "cuadrar" (se es así) es que desde ese driver no sea capaz de dar ninguna ingformación asociada a la máquina...?¿?¿?¿?¿
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #19  
Antiguo 14-05-2007
Avatar de white_zombie
[white_zombie] white_zombie is offline
Miembro Premium
 
Registrado: nov 2005
Ubicación: Zaragoza - España
Posts: 187
Poder: 19
white_zombie Va por buen camino
Prueba el comando -O1, te da posibles sistemas operativos si no es capaz de concretar uno.

Creo que tambien hay una opcion que da la distancia, bueno el numero de switch por los que pasa pero no se exactamente cual es.

De momento no se me ocurre nada mas, esta complicado el asunto.
Responder Con Cita
  #20  
Antiguo 14-05-2007
sinalocarlos sinalocarlos is offline
Miembro
 
Registrado: sep 2006
Posts: 152
Poder: 18
sinalocarlos Va por buen camino
Me quede con la duda, y buscando por ahi me encontre, en la pagina de Torry, algo que te podria servir.

Adjunto archivo con el proyecto.
Archivos Adjuntos
Tipo de Archivo: zip ipsname.zip (22,6 KB, 27 visitas)
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como saber cuantas lineas tiene un archivo de texto MRSAM .NET 3 28-03-2007 02:35:00
Como saber quien tiene una sesion iniciada en la maquina "\\maquina....." OSKR API de Windows 2 25-11-2005 20:20:32
Como Saber Quien Esta Utilizando Mi Base De Datos jostrix MySQL 0 24-05-2005 00:46:11
Como saber los dias que tiene un mes?? alfredosg19 Varios 3 06-03-2005 12:56:12
Como saber que letra tiene asignada la unidad de CD pampitasnowman Varios 1 22-09-2003 19:29:14


La franja horaria es GMT +2. Ahora son las 17:12:02.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi