Estoy tratando de obtener dos valores de una API de IP, el geo sin caracteres adicionales y "isproxy"
el resultado está en este formato :
Resultado:
"{\"ipVersion\":4,\"ipAddress\":\"8.8.8.8\",\"latitude\":37.386051,\"longitude\":-122.083847,\"countryName\":\"Estados Unidos de América\",\"countryCode\":\"US\",\"timeZone\":\"-08:00\",\"zipCode\":\"94035\",\"cityName\":\"Mountain View\",\"regionName\":\"California\",\"isProxy\":false,\"continent\":\"Américas\",\"continentCode\":\"AM\"}"
Intenté esto pero no puedo obtener el valor correcto de isProxy, en este caso devuelve ""continent\":\"Américas""
y en mi intento anterior era "n"
-- Nuevos datos de IP
-- Establecer la URL base para la API
establecer baseURL a "https://freeipapi.com/api/json/"
establecer isProxy a ""
-- Ejemplo: Obtener información para una dirección IP específica
establecer transactionIP a "8.8.8.8" -- Reemplazar con la dirección IP que desee consultar
-- Crear la URL completa de la API
establecer apiUrl a baseURL & transactionIP
-- Hacer la solicitud a la API
establecer apiResponse a do shell script "curl " & forma citada de apiUrl
-- Función para extraer el valor de una clave específica de un JSON
en extractFromJSON(jsonString, key)
establecer keyString a "\"" & key & "\":"
establecer keyValue a texto ((desplazamiento de keyString en cadena JSON) + (longitud de keyString)) hasta -1 de cadena JSON
establecer delimitadores de elementos de texto de AppleScript a ","
establecer keyValueList a ítems de texto de keyValue
repetir con i de 1 a contar de keyValueList
si el ítems de keyValueList i contiene "\"" luego
establecer keyValue a ítems de keyValueList i
salir del repetir
fin si
fin repetir
establecer delimitadores de elementos de texto de AppleScript a "\""
return texto 2 hasta -2 de keyValue
end extractFromJSON
-- Extraer valores
establecer countryCode a extractFromJSON(apiResponse, "countryCode")
establecer isProxyValue a extractFromJSON(apiResponse, "isProxy")
return isProxyValue
si isProxyValue es igual a "false" entonces
establecer isProxy a " = Proxy"
otro
establecer isProxy a " = No es un Proxy"
fin si
return countryCode & isProxy