Você não especifica o seu SO, então estou assumindo o Windows.
Eu tenho um script, gravado no VBSctipt, que é executado regularmente (através do recurso de tarefa agendada do Windows) e mudo o meu papel de parede para uma seleção aleatória, dependendo da hora do dia (então escolhe um da manhã) definido entre 0700 e 1000 e assim por diante). Depois de decidir usar a imagem, as seguintes linhas atualizam o papel de parede:
Set oShell = WScript.CreateObject("Wscript.Shell")
oShell.RegWrite "HKCU\Control Panel\Desktop\Wallpaper", sImage
oShell.Run "%windir%\System32\RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters", 1, False
Você pode criar algo semelhante que baseie sua escolha apenas no intervalo de IPs em que você parece estar. Você pode detectar seu endereço público atual fazendo uma chamada HTTP para algo como link usando o Biblioteca WinHTTP (embora se você usar um serviço público como este, certifique-se de não fazer a consulta com muita freqüência). Como uma alternativa para detectar o seu endereço IP público, você poderia tentar escanear a saída de ipconfig
ou detectar outras propriedades da rede (posso ver minha unidade de rede de arquivamento pornográfico? Se assim for devo estar em casa) e assim por diante. / p>
Você pode obter mais ajuda sobre isso no StackOverflow.
Não conheço nenhum utilitário pré-escrito que faça isso. Não há nenhuma dúvida de que alguns estão por aí, mas escrever seu próprio script pode ser mais rápido do que procurar por um pré-escrito que funcione do jeito que você quer.