Toon posts:

Javascript "is ip-adres online check"

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik wil graag een javascript functie maken, die kan checken of een bepaald document kan worden bereikt.

Bijv:
JavaScript:
1
2
3
4
5
6
7
8
9
10
    // Functie kijkt of het document op 'url' beschikbaar is
    // Return value = TRUE wanneer deze beschikbaar is, anders FALSE
    function IsDocumentOnline(url)
    {
        //............ hier wordt gekeken of het document kan worden bereikt, dus online is ...........
        if(/*.......*/)
            return true;
        else
            return false;
    }


Als ik google op javascript 'load' of 'preload' kom ik vaak alleen op 'image preloading' script sites terecht. :'(

Iemand een suggestie hoe ik dit kan doen met javascript? :)

  • dominic
  • Registratie: Juli 2000
  • Laatst online: 27-11 20:08

dominic

will code for food

Declareer in het document dat geladen moet worden een globale javascript variabele, deze kun je dan vanuit je 'parent'-script testen.

Download my music on SoundCloud


  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 19-10 08:18
je zou een http request kunnen posten, maar dit zegt niks over of de host online is.. alleen of hij een webserver heeft die reageerd op jouw request.

je zou kunnen pingen, maar daar hetzelfde verhaal..

kortom: aan welke eis moet een ip adres voldoen om 'online' te zijn?
dominic schreef op dinsdag 20 februari 2007 @ 14:07:
Declareer in het document dat geladen moet worden een globale javascript variabele, deze kun je dan vanuit je 'parent'-script testen.
wat vereist dat je voor elk document een .js file maakt, die die var zet.

stel:
je hebt een file http://127.0.0.1/hoi/boe.doc. Deze wil je checken of hij bestaat. De enige manier die ik ken om dat te doen is om hem in te lezen. als de file size > 0 oid dan is hij 'online'
Echter staat dit los van het feit of het ip adres (zoals de topic titel doet vermoeden) online is of niet.
Het kan namelijk zo zijn dat de host offline is en dat de file er dus niet is, maar ook dat de host er wel is, en de file er niet is..

dus @TS:
wat wil je precies?

[ Voor 59% gewijzigd door BasieP op 20-02-2007 14:10 ]

This message was sent on 100% recyclable electrons.


Verwijderd

Topicstarter
Nou, ik ben een programmaatje aan het schrijven waarmee ik vanaf een andere locatie mijn PC thuis kan uitzetten.

Ik log in met een wachtwoord vanaf de browser, en klik op 'Reboot' of op 'Shutdown'. Bij de 'Reboot' pagina wil ik graag kunnen kijken wanneer de PC weer terug online is gekomen na de reboot.

Uiteraard moet hiervoor de zogenaamde 'Remote Control Server' zoals ik het progsel heb genoemd wel draaien, dit gaat automatisch tijdens het opstarten na de reboot (misschien moet ik dat zelfs als service doen omdat ie anders alleen opstart na het aanloggen, daarom misschien toch PING gebruiken om een service te voorkomen?).

Thanks alvast voor de ideeën en goede vragen!

Verwijderd

Topicstarter
Hoe kan ik met javascript een bestand uitlezen en de file size checken? Is dat wel mogelijk?

  • benoni
  • Registratie: November 2003
  • Niet online
OK, omdat je zo'n haast hebt... :>

File size checken hoeft niet per sé, gebruik de functies in Javascript waarvan je als resultaat krijgt of dat een object is geladen of niet.

Een paar proefballonnetjes:
  • Plaatje van de server laden... met een onload-handler erop die een 'server-klaar' functie aanroept.
  • AJAX dingetje (met xHttpRequest dus), bij een foutmelding weer opnieuw proberen.
Hierbij zou je met setTimeout() je servermonitoring-functie elke vijf seconden kunnen starten, zodat je niet telkens op het knopje hoeft te drukken.

Beide voorbeelden gaan wel uit van requests op HTTP poort 80, je zit immers met Javascript in die omgeving en je kunt niet zomaar op andere protocols zoals PING gaan requesten.

  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

Met AJAX zou je kunnen testen wat de html state is, is ie 404, of 403 ofzo, dan heb je geen toegang, is ie 200, dan is het ok :-)

Going for adventure, lots of sun and a convertible! | GMT-8


Verwijderd

Topicstarter
Heb je voor Ajax een aparte HTTP server plugin nodig? Of is het onderdeel van Javascript? Ik heb nl. nog nooit met Ajax gewerkt, wel goede dingen over gehoord overigens.

Het 'onload' handler idee lijkt me een goede keus, maar moet het dan per se een plaatje zijn?

  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 19-10 08:18
Verwijderd schreef op zaterdag 24 februari 2007 @ 11:43:
Heb je voor Ajax een aparte HTTP server plugin nodig? Of is het onderdeel van Javascript? Ik heb nl. nog nooit met Ajax gewerkt, wel goede dingen over gehoord overigens.

Het 'onload' handler idee lijkt me een goede keus, maar moet het dan per se een plaatje zijn?
ajax is geen techniek of applicatie ofzo, maar een samengraaisel van bestaande functionaliteit.

je kan gewoon wat js schrijven (xhtmlreq.) en verder heb je niks nodig..
google is your friend

This message was sent on 100% recyclable electrons.


Verwijderd

Topicstarter
Aha, zo'n vermoeden had ik al over Ajax, veel van wat ik gezien had leek op javascript achtige applicaties.

Bedankt, dat gaat deze jongen dus even proberen. De HTTP reply codes ken ik wel, dus zal wel niet zo'n probleem worden.

Ik zal het hier posten als het gelukt is :)

  • benoni
  • Registratie: November 2003
  • Niet online
Verwijderd schreef op zaterdag 24 februari 2007 @ 11:43:
Heb je voor Ajax een aparte HTTP server plugin nodig? Of is het onderdeel van Javascript? Ik heb nl. nog nooit met Ajax gewerkt, wel goede dingen over gehoord overigens.
Nee.
Ja, of nouja, van de browser objecten waar je met js bij kunt.
Ik wel.
Ik ook.
Het 'onload' handler idee lijkt me een goede keus, maar moet het dan per se een plaatje zijn?
Plaatje is lekker simpel: variabele vullen met test = new Image(); test.onload = jeloadhandlerfunctie; test.src = 'http://blabla'. Anders moet je HTML gaan inladen in een iframe of subframe of zo, wordt allemaal wat lastiger. AJAX is dan in principe de 'netste' manier denk ik.

Verwijderd

Topicstarter
Ja, de Ajax manier lijkt mij ook het leukst.

Als je dan eenmaal aan de gang bent wil je er het fijne van weten, wordt je toch weer wat wijzer. Je weet nooit waar het goed voor is ;) thanks benoni (en de rest ook hoor :*))

Resultaten post ik hier binnenkort.

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Euh... AJAX werkt toch niet cross-domain :?

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • benoni
  • Registratie: November 2003
  • Niet online
RobIII schreef op zaterdag 24 februari 2007 @ 14:54:
Euh... AJAX werkt toch niet cross-domain :?
TS's statuspagina staat nog geopend vanaf dezelfde server, dus dat komt (zonder SSL) wel goed.
In andere gevallen zou je inderdaad een plaatje moeten laden of zo...

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
edit:
hier stond een heel verhaal

mja... ik denk misschien te simpel

[ Voor 131% gewijzigd door RobIII op 24-02-2007 15:09 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Verwijderd

Topicstarter
dan moet je m'n tweede post eens lezen ;)

daar leg ik uit dat ik een programma aan het schrijven ben die een PC kan herstarten, nadat die herstart is aangeroepen, moet ajax blijven kijken of de PC weer online komt.

Ik ben er nu nog even mee aan het stoeien. Net probeerde ik de setTimeout() waarmee ik om de 5 seconden opnieuw de checkfunctie uitvoer in de functie te gooien die wordt aangeroepen door de xml request handler, maar die wordt vaak aangeroepen bij het ontvangen van de document status. Dit ben ik nu aan het ombouwen met 1 globale variable die op TRUE komt wanneer het document goed is ontvangen, staat deze niet op TRUE dan wordt de setTimeout() elke 5 seconden herhaalt.

  • benoni
  • Registratie: November 2003
  • Niet online
Even lezen, hij logt op een webpagina (PHP?) van de betreffende server om de herstart uit te voeren, en wil vervolgens in dezelfde pagina het resultaat zien. Beetje 't zelfde als bij zo'n ADSL routertje.
Verwijderd schreef op zaterdag 24 februari 2007 @ 00:10:
Ik log in met een wachtwoord vanaf de browser, en klik op 'Reboot' of op 'Shutdown'. Bij de 'Reboot' pagina wil ik graag kunnen kijken wanneer de PC weer terug online is gekomen na de reboot.
Ow, wat tik ik weer 's lekker traag }:| :')
offtopic:
@Hieronder: dat ik 4 minuten na jou aan kom sloffen met een post die precies hetzelfde zegt 8)7

[ Voor 13% gewijzigd door benoni op 24-02-2007 16:10 ]


Verwijderd

Topicstarter
benoni schreef op zaterdag 24 februari 2007 @ 15:10:
Ow, wat tik ik weer 's lekker traag }:| :')
wat bedoel je hiermee?
edit: oh, da heb je wel s he :p

-------

Er wordt via de browser ingelogd op een applicatie die ik zelf aan 't ontwikkelen ben. De authorisatie gaat via base64 encryptie (simpel te decrypten maar dit is een simpele standaard voor HTTP), als de authorisatie is gelukt, blijft de browser de encrypted string (van username:password) telkens meezenden in elk HTTP request. Daardoor weet mijn applicatie die de PC herstart dat het goed zit en heb ik niets van PHP nodig.

Het is overigens gelukt! Ik heb zojuist een ajax testje opgezet, met exception handlers zodat je geen fouten in de browser te zien krijgt mocht je bijv. het script op je lokale PC uitvoeren (niet vanaf een HTTP server dus).

Als iemand de ajax test wilt bekijken, download hem hier even. Je kunt bijv. mijn HTTPSV (http servertje) gebruiken (http://sf.net/projects/httpsv) om de test uit te voeren, ook is deze trouwens handig voor 't verzenden van bestandjes op school :p

Verwijderd

Topicstarter
zit ik nu trouwens over te denken, het ajax scriptje kan ook gewoon kijken of "hijzelf" online is ipv voor een dummy.txt te kijken 8)7 mja was meer bezig met de exception handlers

edit: dit moest eigenlijk bij het vorige bericht |:(

[ Voor 15% gewijzigd door Verwijderd op 24-02-2007 15:49 ]


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op zaterdag 24 februari 2007 @ 15:37:
De authorisatie gaat via base64 encryptie (simpel te decrypten maar dit is een simpele standaard voor HTTP), als de authorisatie is gelukt, blijft de browser de encrypted string (van username:password) telkens meezenden in elk HTTP request.
offtopic:
Base64 is geen encryptie ;)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Verwijderd

Topicstarter
RobIII schreef op zaterdag 24 februari 2007 @ 15:59:
[...]

offtopic:
Base64 is geen encryptie ;)
[offtopic]
srry, vergiste me : ik bedoel encodering/decodering

[ Voor 32% gewijzigd door Verwijderd op 25-02-2007 23:09 ]


Verwijderd

Topicstarter
nog 1tje extra offtopic:

kan iemand mij in vertellen hoe ik bijv. een HTML bestand kan omzetten (edit: of een extern bestand gebruiken in een 'define' ?) in een C header file zodat ik het hele bestand kan definiëren en oproepen onder 1 naam?

[ Voor 13% gewijzigd door Verwijderd op 24-02-2007 16:18 ]


  • Michali
  • Registratie: Juli 2002
  • Laatst online: 05-11 19:33
Ik snap helemaal niets van je vraag. Geef eens een voorbeeld?

Noushka's Magnificent Dream | Unity


Verwijderd

Topicstarter
Michali schreef op zaterdag 24 februari 2007 @ 19:10:
Ik snap helemaal niets van je vraag. Geef eens een voorbeeld?
Dat kan ik begrijpen, ik kon er ook niet gemakkelijk opkomen hoe ik het moest uitleggen.

Een praktisch voorbeeld voor een C header bestand:

C:
1
#define MIJN_TEKENREEKS "mijn tekenreeks"


Dat is een voorbeeld van een definitie 'MIJN_TEKENREEKS' met 'mijn tekenreeks' als inhoud van de definitie

Nu heb ik een HTML bestandje (bijv. 'test.html'), de inhoud hiervan wil ik bijv. gebruiken als de inhoud van de definitie 'MIJN_TEKENREEKS'. Dus de inhoud van een bestand gebruiken in een header file om een definitie te maken.

Zou dit bijv. mogelijk zijn door iets als dit te doen:

C:
1
2
#define MIJN_BESTAND <INHOUD_VAN_HET_BESTAND_'TEST.HTML'_HIER_INLEZEN>
// Kan dit?


Kan zoiets? Of moet ik echt elke regel overkopieëren en tussen haakjes "" zetten en de escape chars goed zetten? :)

Verwijderd

Topicstarter
schopje

  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 19-10 08:18
mag ik vragen WAAROM je dit wilt, want ik voorzie een beetje een design foutje eigenlijk..

This message was sent on 100% recyclable electrons.


Verwijderd

Topicstarter
waarom zou dat een design fout zijn, om een HTML pagina in de executable in te bouwen als 'define'

zou het misschien beter zijn deze pagina's als resource te koppelen of extern te laden, is dat wat je bedoeld?

Verwijderd

Topicstarter
schopje

edit: iemand anders een idee hierover?

[ Voor 53% gewijzigd door Verwijderd op 25-02-2007 22:21 ]


  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 19-10 08:18
je wilt dus met c++ html genereren?

als de html statisch is, waarom dan hardcoded maken? voeg hem idd als resource toe, of kopieer hem gewoon van mapje1 naar mapje2.

als de html niet statisch is dan heeft het sowieso geen zin om hem als define te defineren. Dan kan je hem beter ook echt genereren (dus gewoon string uitpoepen in file)

volgens mij snap ik nog steeds niet wat je voor ogen hebt met het verhaal. Je hebt een (aantal?) c++ programma(s), en een aantal html pagina's (php?)

wat je wilt is dat als je op een link klikt in de html, je c++ programma wat gaat doen. Weet niet of je dat al werkend hebt, maar daar gaat je vraag volgens mij niet over.

wat ik niet zie is wat de c++ met de html te maken heeft. andersom echter wel (link in html doet iets in c++)
maak je gebruik van php of een dergelijke taal om de html te generen? of wil je dat met C++ doen? en als je het met c++ doet (waar je vraag dan denk ik wel over gaat) waarom zou je dan je html file titel (want het gaat dus niet om de body van de html, maar puur de filename right?) in een define stoppen?

[ Voor 52% gewijzigd door BasieP op 28-02-2007 09:48 ]

This message was sent on 100% recyclable electrons.


Verwijderd

Topicstarter
Ik wilde kijken of ik een bestand kon koppelen aan een DEFINE ipv resource of extern laden.

Het gaat niet over HTML genereren, juist niet, de pagina's zijn statisch.

Ik heb het programma nu werkend gekregen, vanaf school (bijvoorbeeld) kan ik inloggen via de HTTP browser (via HTTP authorization) op het C++ programmaatje. Er wordt dan een pagina teruggestuurd naar de browser met 2 knoppen, 'Reboot' en 'Shutdown'.

Als je dan vanuit de browser bijv. op 'Reboot' klikt gaat het C++ programmaatje de lokale PC waarop het progsel draait rebooten, met javascript en een XMLHttpRequest wordt dan gekeken wanneer de PC weer online komt.

Ik heb de statische pagina toch als define gebruikt, maar zelf handmatig alles ingetikt in het C header bestand (mijn vraag was eigenlijk of je met een define de tekst uit een ander bestand kan gebruiken voor de define).

Het werkt allemaal en ik heb wat geleerd over Javascript + XMLHttpRequest, bedankt allemaal :)
Pagina: 1