¿Cómo genero un número par aleatorio con Applescript?

0

Estoy intentando crear un Applescript que cambiará la dirección MAC de mi enrutador automáticamente. Algunos campos deben ser números pares, pero no puedo averiguar cómo generar números pares solamente. Aquí está lo que tengo hasta ahora ...

set rand1 to (random number from 10 to 98) as string
set rand2 to (random number from 10 to 98) as string
set rand3 to (random number from 10 to 98) as string
set rand4 to (random number from 10 to 98) as string

tell application "Safari"
    activate
    open location "router-address/WanMAC.asp"
    tell application "System Events"
        delay 1
        keystroke "login"
        keystroke tab
        keystroke "password"
        delay 1
        keystroke return
        delay 1
        keystroke tab
        keystroke rand1
        keystroke tab
        keystroke rand2
        keystroke tab
        keystroke rand3
        keystroke tab
        keystroke rand4
        submit via javascript?
    end tell
end tell

Bastante rudimentario lo sé. Pero la idea básica es completar mis credenciales de inicio de sesión, la pestaña de los campos de formulario que se deben cambiar, ingresa una dirección MAC válida y luego envía el formulario. ¿Alguien puede ayudar? Gracias.

    
pregunta Pieter 08.05.2013 - 22:23

4 respuestas

2

Puedes multiplicar por 2:

(random number from 5 to 49) * 2
    
respondido por el user495470 08.05.2013 - 22:32
0
set rand to (random number from 0 to 99)
if rand mod 2 is not equal to 0 then
    set rand to rand - 1
end if
    
respondido por el Matthieu Riegler 09.05.2013 - 02:13
0

Aquí hay otra opción:

set rand1 to randNum(10, 98)

on randNum(low, high)
    (random number from low to high)
    tell the result to if it mod 2 = 0 then return it
    randNum(low, high)
end randNum
    
respondido por el adayzdone 09.05.2013 - 02:39
0

Pensé que esto era un poco de código útil para ordenar y expandir un poco.

on evenRandomNumber(low, high)
    repeat
        set randomNumber to (random number from low to high)
        if randomNumber mod 2 = 0 then exit repeat
    end repeat
    return randomNumber
end evenRandomNumber

on oddRandomNumber(low, high)
    repeat
        set randomNumber to (random number from low to high)
        if randomNumber mod 2 ≠ 0 then exit repeat
    end repeat
    return randomNumber
end oddRandomNumber
    
respondido por el Paul Skinner 16.05.2013 - 17:01

Lea otras preguntas en las etiquetas