API MIKROTIK – Haciendo ping desde tu herramienta de monitoreo con PHP


A pedido de (ahora un colaborador del blog) Alejando Mogollon, voy a postear un código muy sencillo para mostrar el ping desde tu router Mikrotik RouterOS hacia la dirección IP que quieras testear para que agregues a tu App, o simplemente potencies tus herramientas de monitoreo y soporte técnico. Este es el resultado:

api_ping
En este caso, (para testear) desenchufe el cable del port WAN de mi router.

Solo debemos setear como siempre los valores del Router y en este caso las variables $ping_address y $ping_count.

//////// configura tus datos
$ipRouteros ="192.168.100.1"; //ip_de_tu_API
$Username ="api_usuario"; //usuario_API
$Pass ="#pass"; //contraseña_API
$Port = 8727; //puerto_API
$ping_address = "8.8.8.8"; // ip a pingear que puede venir de un formulario
$ping_count = 5; // cantidad de pings que quiero ejecutar.

IMPORTANTE: Agregarle permisos «test» al grupo del usuario que estes usando para conectar. De lo contrario va a tirar un error de permisos.

Descargar ejemplo aqui.
______________________
publicado primero en tech-nico.com

14 comentarios en “API MIKROTIK – Haciendo ping desde tu herramienta de monitoreo con PHP

  1. buena un coordiar saludo estoy testiando y me da estos errores
    Notice: Undefined variable: receiveddone in C:\xampp\htdocs\phpapimk\api\api_ping\api_mt_include2.php on line 301

    Notice: Undefined index: status in C:\xampp\htdocs\phpapimk\api\api_ping\index.php on line 29
    Respuesta desde 8.8.8.8: unread_bytes=56 tiempo=64ms TTL=53.

    como ven me da ping correctamente pero me genera esos errores

  2. Hay 2 variables que esta intentando recibir y no traen valor. Prueba leyendo sobre empty () en la pagina de php.org

  3. consulta, tomando en cuenta que se va armando un programa con los ejemplos que estas poniendo en tu blog, si en vez de poner una ip buscas un cliente? en definitiva es lo mismo pero por ejemplo para armar algo que lo pueda manejar gente con poco conocimiento tecnico por ejemplo la administrativa, se podra hacer algo similar como para chequear los ping a los clientes?

  4. Nico buen día, primero que todo darte las gracias por estos excelentes tutoriales, he aprendido mucho acerca de la API de mikrotik gracias a tus ejemplos.
    Me gustaría saber como logro hacer ping infinito y que PHP me muestre cada paquete enviado y recibido en tiempo real, es para implementar una herramienta que me permita monitorizar diferentes routerboars que tenga en mi red y saber cuando alguno se caiga o me envié una latencia muy alta tomarlo como una alarma. espero que me hayas entendido.

    Muchas gracias de antemano.

  5. Nico buen día, te cuento que con ping_count=0; debe de funcionar, solo que al ser un ping infinito el php se queda cargando y nunca me muestra el resultado, la idea es ir mostrando el resultado cada segundo por ejemplo.

    Muchas Gracias

  6. Buenas tardes,
    Compañero es posible guardar el cache de dns a traces del api, generando un código.
    Lo que quiero hacer es guardar el registro de paginas visitadas, y esa informacion se almacena en la cache dns

  7. Yesid, Si en principio, no seria complicado obtener con el API las paginas cacheadas. Pero, a mi modo de verlo, no seria un registro valido porque no tienen fecha o IP del cliente que lo accede. Si necesitas mas detalles, busca información sobre el webproxy, quizas te de mas detalles que el cache de DNS. Slds.

  8. buaaaa, una masa loco!! estoy implementando un Hotspot y necesito que un centro de atencion al cliente cree los usuarios a medida que se registran.. voy a desoxidar un poco el php que aprendi hace años. Me vino al pelo tu blog! Gracias!!

  9. Deberias hacer que el ping se muestre con cualquier ip no lo se usando un text y lo imprima en popus para ver el resultado algo a si seria majo.

Deja un comentario