{*************************************************************** * Project : REST GEO OpenWeatherMap Report for Local Demo * App Name : 640_rest_weather_report.txt, #locs=355 * Purpose : Demo for Tutorial 40 REST Coding * Date : #sign>6:25 Max: MAXBOX10: 01/12/2015 12:08:48 AM * History : convert GEOCode to metrics (celcius) * : add byte code test unit -sunrise localIP * Tutor : http://www.softwareschule.ch/download/maxbox_starter40.pdf * http://www.delphipraxis.net/160152-indy-10-http-s-protokoll.html ****************************************************************} //////////////////////////////////////////////////////////////////////////////// // Contains code to process GeoCode in XML data fields // // max@kleiner.ch August 2015 www.openweathermap.com // //////////////////////////////////////////////////////////////////////////////// {@To get access weather API you need an API key whatever account you chose!!} Program GetGeoCode_API_Weather23; CONST UrlGeoLookupInfo2 ='http://ipinfodb.com/ip_query.php?timezone=true&ip=%s'; UrlGeoLookupInfo3 = 'http://api.hostip.info/get_html.php?ip=%s&position=true'; WeatherREX = //test: '.*Äàòà\s*Êó?ñ\s*Êó?ñ ïîê.\s*Êó?ñ ï?îä.\s*Êóðñ íà?[^<\d]*' '"temp":([\d\.-]+).*"pressure":([0-9]+).*"humidity":([0-9]+).*"country":"([\w\s]+).*'+ '"sunrise":([0-9]+).*"sunset":([0-9]+).*"name":"([\w\s]+)"'; var LocalCity, LocalCountry: string; function GetGeoInfo4(const IpAddress: string; const UrlGeoLookupInfo: string): string; var lHTTP: TIdHTTP; lStream: TStringStream; begin lHTTP:= TIdHTTP.Create(NIL); lStream:= TStringStream.Create(''); try try lHTTP.Get1(Format(UrlGeoLookupInfo,[IpAddress]), lStream); except lHTTP.Get1(Format(UrlGeoLookupInfo2,[IpAddress]), lStream); //if something wrong try using a backup server. end; lStream.Seek(0,0); result:= 'GEO_IP Out: '+lStream.ReadString(lStream.Size); finally lHTTP.Free; lStream.Free; end; end; //@test http://api.openweathermap.org/data/2.5/weather?q={klagenfurt} Const //UrlWeatherReport25='http://api.openweathermap.org/data/2.5/weather?q=%s&units=metric'; //http://www.timeanddate.com/weather/germany/tuebingen/hourly UrlWeatherReport25= 'http://api.openweathermap.org/data/2.5/weather?q=%s&units=metric&APPID'+ '=55013bf3d09cfb0619989a00ed5bed09'; {@To get access to weather API you need an API key whatever account you chose!!} function GetURLAsString(aURL: string): string; var lHTTP: TIdHTTP; lStream: TStringStream; begin lHTTP:= TIdHTTP.Create(nil); lStream:= TStringStream.Create(Result); try lHTTP.Get1(aURL, lStream); lStream.Position:= 0; Result:= lStream.ReadString(lStream.Size); finally lHTTP.Free; lHTTP:= NIL; //FreeAndNil(lStream); lstream.Free; lstream:= NIL; end; end; function GetGeoWeather(const location: string; const UrlRestAPI: string): string; var lHTTP: TIdHTTP; lStream: TStringStream; asyn: TSynwInfo; dl: TDownloadURL; begin lHTTP:= TIdHTTP.Create(NIL); lStream:= TStringStream.Create(''); try try lHTTP.Get1(Format(UrlRestAPI,[location]),lStream); //writeln('html back: '+lHTTP.Get(Format(UrlRestAPI,[location]))); except lHTTP.Get1(Format(UrlGeoLookupInfo2,[location]),lStream); //if something wrong try using backup server. //writeln('html back: '+GetURLAsString('http://api.openweathermap.org')); writeln('Exception: '+Gethtm(UrlWeatherReport25)) end; lStream.Seek(0,0); result:= 'GEO_Weather_Report: '+lStream.ReadString(lStream.Size); finally lHTTP.Free; lStream.Free; end; end; function GetGeoTime(const location: string; const UrlRestAPI: string): string; var lHTTP: TIdHTTP; lStream: TStringStream; begin lHTTP:= TIdHTTP.Create(NIL); lStream:= TStringStream.Create(''); try try lHTTP.Get1(Format(UrlRestAPI,[location]),lStream); //writeln('html back: '+lHTTP.Get(Format(UrlRestAPI,[location]))); //writeln(lHTTP.Get('http://google.com')); except //lHTTP.Get1(Format(UrlGeoLookupInfo2,[location]),lStream); //if something wrong try using a backup server. writeln('Exception: '+Gethtm(UrlWeatherReport25)) end; lStream.Seek(0,0); result:= 'GEO_Time_Clock: '+lStream.ReadString(lStream.Size); finally lHTTP.Free; lStream.Free; end; end; Const RealIP_REX = '"city": "([üöä\w\s]+).*"country": "([\w\s]+).*"'; function GetRealIP2(): String; var LJsonObj: TJSONObject; str: string; http : TIdHttp; begin str:=''; http:=TIdHTTP.Create(Nil); try str:= UTF8toAnsi(http.Get('http://ipinfo.io/json')); LJsonObj:= TJSONObject.create4(str); //TEncoding.ASCII.GetBytes(str),0) as TJSONObject; //str := LJsonObj.Get('ip').JsonValue.Value; //LJsonObj.clone; //LJsonObj.GetItemAsStrUTF8 GetItemAsStrUTF8('ip'); //result:= LJsonObj.GetString('"ip":'); // result:= LJsonObj.GetString('"hostname":'); // str:= HTTPEncode(str) //str:= HTTPDecode(str) //str:= UTF8ToString(str) with TRegExpr.Create do try Expression:= RealIP_REX; if Exec(str) then begin PrintF('IP Weather Local City Name: %s ',[Match[1]]) PrintF('IP Weather Local Country Name: %s ',[Match[2]]) LocalCity:= match[1] LocalCountry:= match[2] //UTF8 umlaute {s:= StringReplace(s, 'ä', 'ä', [rfReplaceAll]); s:= StringReplace(s, 'ö', 'ö', [rfReplaceAll]); s:= StringReplace(s, 'ü', 'ü', [rfReplaceAll]); } localcity:= StringReplace(localcity, 'ä', 'ae', [rfReplaceAll]); localcity:= StringReplace(localcity, 'ö', 'oe', [rfReplaceAll]); localcity:= StringReplace(localcity, 'ü', 'ue', [rfReplaceAll]); writeln('aeo name convert: '+localcity) end else writeln('ip localcity not found'); finally Free; end; Except writeln('get real ip EXCEPTION ') raiselastException; end; result:= str; LJsonObj.Free; http.Free; end; function GetMyHostAddress2: string; var http: variant; {IWinHttpRequest;} ajson: TJSONObject; begin http:= CreateOleObject('WinHttp.WinHttpRequest5.1') //as IWinHttpRequest; http.Open('GET', 'http://automation.whatismyip.com/n09230945.asp', False); http.Send(VarisEmptyParam(http)); if http.StatusCode = 200 then Result:= http.ResponseText else Result:= ''; end; function HexToBits(C: Char): Byte; begin case C of '0'..'9': Result := Byte(Ord(C) - Ord('0')); 'a'..'f': Result := Byte(10 + (Ord(C) - Ord('a'))); 'A'..'F': Result := Byte(10 + (Ord(C) - Ord('A'))); else writeln('raise Exception.Create(''Invalid encoding detected'); end; end; procedure TestMercatorConverters; begin {function GetLongToMercProjection(const long:extended):extended; function GetLatToMercProjection(const Lat:Extended):Extended; function GetMercProjectionToLong(const ProjLong:extended):extended; function GetMercProjectionToLat(const ProjLat:extended):extended;} writeln('GetLongToMercProjection: '+floattostr(GetLongToMercProjection(014.14388))); writeln('GetLatToMercProjection: '+floattostr(GetLatToMercProjection(46.62832))); writeln('GetLongToMercProjection: '+floattostr(GetLongToMercProjection(7.45))); writeln('GetLatToMercProjection: '+floattostr(GetLatToMercProjection(46.95))); end; procedure letMultipleWeather(apistr: string); begin with TRegExpr.Create do try Expression:= weatherREX; if Exec(apistr) then PrintF('Weather REXT live: '+ '%sº in %s : %s of %s hPa, %s hum -- %s sunrise set: %s', [Match[1],Match[7],Match[4],Match[2],Match[3]+'%', datetimetostr(UnixToDateTime(strtoint(Match[5]))), timetostr(UnixToDateTime(strtoint(Match[6])))]); finally Free; end; end; var jsonstr, jsonip, MyPublicIP: string; Params: TStringList; //Enc: TEncoding; Begin {@main} //writeln('Coord is: '+GetGeoCode('xml',ExePath+'outputmap2cologne.xml', 'cathedral cologne', true)); // function CoordinateStr2(Idx: Integer; PosInSec: Double; PosLn: TPos): string; writeln('CoordinateStr: '+CoordinateStr(2, 50.56, tlat)); //CharsetToEncoding(Request.CharSet); //ShellExecute3('http://maps.google.com/maps?q=+50.94133705,+6.9581200766','',seCMDOPen) TestMercatorConverters; if isInternet then begin writeln(GetGeoInfo4('178.196.192.131', UrlGeoLookupInfo3)); writeln(GetGeoInfo4(getIp(gethostname), UrlGeoLookupInfo3)); //if (preg_match('/^(\d{1,3}\.){3}\d{1,3}$/s', $ip) writeln(GetGeoInfo4('188.60.54.133', UrlGeoLookupInfo3)); MyPublicIP:= GetHTM('http://ipinfo.io/ip'); //try writeln('MyPublicIP: '+MyPublicIP) {except free; end end;} writeln('GetRealIP2_string: '+GetRealIP2) //writeln(GetGeoInfo4(getIp(gethostname), UrlGeoLookupInfo3)); //writeln(GetGeoWeather('krumpendorf', UrlWeatherReport25)); //writeln(GetGeoWeather('koeln', UrlWeatherReport25)); writeln(GetGeoWeather('bern', UrlWeatherReport25)); writeln('') writeln('geotime: '+ GetGeoTime('Bern','http://worldclockapi.com/api/json/est/now')); writeln('geotime: '+ GetGeoTime('bern','https://maps.googleapis.com/maps/api/timezone/json?location=39.6034810,-119.6822510×tamp')); writeln('Weather Report date: '+DateTimeToInternetStr(now, true)) writeln('Local Weather Sensor: ') sr:= GetGeoWeather(localcity+','+localcountry, UrlWeatherReport25); letMultipleWeather(sr) // http://www.freemaptools.com/how-far-is-it-between.htm //http://www.timeanddate.com/worldclock/ //GetMyHostAddress2 --->Invalid class string. end else //if isinternet ShowmessageBig('No Internet available!'); writeln(' '); if isInternet then begin writeln('Weather Report date: '+DateTimeToInternetStr(now, true)) writeln('Weather Sensor List Australia: ') Params:= TStringList.Create; try with Params do begin //Add('vb_login_username=' + AccountName); //Add('vb_login_password=' + AccountPassword); Add('darwin'); Add('alicesprings'); Add('exmouth,au'); Add('perth'); Add('adelaide'); Add('melbourne,au'); Add('devonport'); Add('sydney'); Add('brisbane'); Add('cairns'); Add('bern,ch'); end; finally for it:= 0 to params.count-1 do letMultipleWeather(GetGeoWeather(params.strings[it],UrlWeatherReport25)); params.Free; end end else ShowmessageBig('Sorry No Internet available!'); jsonstr:= 'GEO_Weather_Report: {"coord":{"lon":14.16,"lat":46.62},"weather":[{"id":501,"main":"Rain","description":"moderate rain","icon":"10d"}],"base":"cmc stations","main":{"temp":19.93,"pressure":1009,"humidity":64,"temp_min":17,"temp_max":21.67},"wind":{"speed":2.6,"deg":200},"rain":{"1h":1.17},"clouds":{"all":75},"dt":1439818945,"sys":{"type":1,"id":5931,"message":0.0042,"country":"AT","sunrise":1439784246,"sunset":1439834986},"id":2771894,"name":"Maria Worth","cod":200}' jsonip:= 'MyPublicIP: { '+ '"ip": "188.60.54.133",'+ '"hostname": "133.54.60.188.dynamic.wline.res.cust.swisscom.ch",'+ '"city": "Lausanne",'+ '"region": "Vaud",'+ '"country": "CH",'+ '"loc": "46.5200,6.6300",'+ '"org": "AS3303 Swisscom (Switzerland) Ltd",'+ '"postal": "1003"}' //writeln('temp: '+copy(jsonstr,pos('"temp"',jsonstr)+7,5)) writeln(' ') writeln('Local Weather Sensor: ') sr:= GetGeoWeather(localcity+','+localcountry, UrlWeatherReport25); letMultipleWeather(sr) writeln(' ') maXcalcF('log(4) / log(2.512)') {TMainForm_DownloadFile('http://www.softwareschule.ch/download/maxbox_starter42.pdf', exepath+'tutor42.pdf'); } // 8/20/2015 4:34:32 AM //8/20/2015 6:31:27 PM {writeln(datetimetostr(UnixToDateTime(1440045272))); } with memo2 do begin color:= clblack; font.color:= clweborange; font.size:= 16; end; End. // WeatherGeoCode doc: How to use API key in API call Description: To get access to weather API you need an API key whatever account you chose from Free to Enterprise. We keep right to not to process API requests without API key. API call: http://api.openweathermap.org/data/2.5/forecast/city?id=524901&APPID={APIKEY} Parameters: APPID {APIKEY} is your unique API key Example of API call: api.openweathermap.org/data/2.5/forecast/city?id=524901&APPID=1111111111 Invalid API key. Please see http://openweathermap.org/faq#error401 for more info. Q: API calls return an error 401 A: Starting from 9 October 2015 our API requires a valid APPID for access. Note that this does not mean that our API is subscription-only now - please take a minute to register a free account to receive a key. We are sorry for inconvenience but this is a necessary measure that will help us deliver our services to you faster and more reliably. ref: Internally, TIdHTTP.Get() decodes the server's UTF-8 data to Unicode, and then converts that to Ansi when returning it as an AnsiString in pre-2009 versions. That AnsiString uses the OS's default Ansi codepage, so yes, there is potential for data loss if the OS's current language does not support the Unicode characters being used by the server. http://forums2.atozed.com/viewtopic.php?f=7&t=3011 x = log(4) / log(2.512) = 1.505 mag , in other words: Garmin Ref: Krumpendorf 045: N 46.62832 - E 014.14388 GeoCode Coord2 is: latitude: '46.622273' longitude: '14.2222166' - cathedral cologne result Coord is: latitude: '50.94133705' longitude: '6.95812076100766' >>> 50°56'28.8"N 6°57'29.2"E http://maps.google.com/maps?q=+50.94133705,+6.95812076100766 >>> https://www.google.com/maps/place/50%C2%B056%2728.8%22N+6%C2%B057%2729.2%22E/@50.9413371,6.9581208,17z/data=!3m1!4b1!4m2!3m1!1s0x0:0x0 church cologne: result Coord is: latitude: '50.9636172' longitude: '7.0031056' Please help. I only need the coordinates from this string "Latitude: +51.703155 N, Longitude: +5.250327 E http://maps.google.com/maps?q=+51.703155,+5.250327 Sent from my android" result +51.703155, +5.250327 if no internet: Exception: Socket Error # 11004 ref: http://useruploadedfiles.programmersheaven.com/48584/NMEA.pas doc: REST (REpresentational State Transfer) is a simple stateless architecture that generally runs over HTTPS/TLS. The REST style emphasizes that interactions between clients and services are enhanced by having a limited number of operations. Flexibility is provided by assigning resources their own unique universal resource indicators (URIs). A sample query string follows: http://graphical.weather.gov/xml/sample_products/browser_interface/ndfdXMLclient.php?listLatLon=38.99,-77.02 39.70,-104.80 47.6,-122.30&product=time-series&begin=2004-01-01T00:00:00&end=2013-04-20T00:00:00&Unit=e&maxt=maxt&mint=mint The NDFD data available via the REST service is updated no more than hourly. As a result, we request developers using this REST service only make a request for a specific point no more than once an hour. The database is currently updated by 45 minutes after the hour. You can interact with the REST service by visiting the following URLs: RestFul Web Services Weather Forecast The RestFul Web Services Weather Forecast API provides the weather forecast for a given location, specified by name. This service can be accessed using either REST or SOAP calls in XML format. Both types of calls are aimed at WSDL endpoints. Access current weather data for any location on Earth including over 200,000 cities! Current weather is frequently updated based on global models and data from more than 40,000 weather stations. Data is available in JSON, XML, or HTML format. Call current weather data for one location By city name Description: You can call by city name or city name and country code. API responds with a list of results that match a searching word. API call: api.openweathermap.org/data/2.5/weather?q={city name} api.openweathermap.org/data/2.5/weather?q={city name},{country code} Parameters: q city name and country code divided by comma, use ISO 3166 country codes Examples of API calls: api.openweathermap.org/data/2.5/weather?q=London api.openweathermap.org/data/2.5/weather?q=London,uk Program SpammersAreParasites; var l1,l2: Srting; begin l1:='70'; l2:='0'; Bxo:=l1 + l2; Bxo:=(Bxo) (* l1:=97; l2:=9 Bxo:=(l1 + l2); *) end. ? Value of Bxo: GEO_IP Out: Country: SWITZERLAND (CH) City: Bern Latitude: 46.9167 Longitude: 7.4667 IP: 178.196.192.131 GEO_Weather_Report: {"coord":{"lon":7.45,"lat":46.95},"weather":[{"id":803,"main":"Clouds","description":"broken clouds","icon":"04d"}],"base":"cmc stations","main":{"temp":19.27,"pressure":1014,"humidity":68,"temp_min":15.56,"temp_max":23.89},"wind":{"speed":1.5,"deg":20.506},"clouds":{"all":75},"dt":1439805254,"sys":{"type":1,"id":6013,"message":0.0048,"country":"CH","sunrise":1439785803,"sunset":1439836653},"id":2661552,"name":"Bern","cod":200}  mX3 executed: 17.08.2015 12:07:08 Runtime: 0:0:11.370 Memload: 78% use https://www.academia.edu/14979785/Tutor_40_REST_API_Coding https://www.scribd.com/doc/274846387/maXbox-Starter-40-REST-API-Coding N 0.0140 GetLongToMercProjection: 14.14388 GetLatToMercProjection: 52.8354560030937 GEO_IP Out: Country: SWITZERLAND (CH) City: Bern Latitude: 46.9167 Longitude: 7.4667 IP: 178.196.192.131 GEO_Weather_Report: {"coord":{"lon":7.45,"lat":46.95},"weather":[{"id":804,"main":"Clouds","description":"overcast clouds","icon":"04d"}],"base":"cmc stations","main":{"temp":20.39,"pressure":1013,"humidity":52,"temp_min":19,"temp_max":23.89},"wind":{"speed":1.5,"deg":40},"clouds":{"all":90},"dt":1439820678,"sys":{"type":1,"id":6013,"message":0.0046,"country":"CH","sunrise":1439785816,"sunset":1439836634},"id":2661552,"name":"Bern","cod":200} GEO_Weather_Report: {"coord":{"lon":14.16,"lat":46.62},"weather":[{"id":501,"main":"Rain","description":"moderate rain","icon":"10d"}],"base":"cmc stations","main":{"temp":19.93,"pressure":1009,"humidity":64,"temp_min":17,"temp_max":21.67},"wind":{"speed":2.6,"deg":200},"rain":{"1h":1.17},"clouds":{"all":75},"dt":1439818945,"sys":{"type":1,"id":5931,"message":0.0042,"country":"AT","sunrise":1439784246,"sunset":1439834986},"id":2771894,"name":"Maria Worth","cod":200} 19.93 https://www.academia.edu/14988582/Tutor_40_REST_API_Coding https://hermes.bfh.ch/owa/?ae=Item&t=IPM.Note&id=RgAAAAAAfzJ37DNuRJflsOsOVoB%2fBwCteBIq18BbS5Nuutf0lzjAAAADHWN%2bAAAK6RssP0AgTajWL4YzGfZsAENMtl0kAAAJ# http://entwickler-konferenz.de/2015/de/speakers/max-kleiner $content = Sys_GetURLContent("http://api.openweathermap.org/data/2.5/forecast/daily?id=2850235&lang=de&mode=json"); $json = json_decode($content); $tag = 1; // Morgen, Übermorgen > 2 usw. if(!isset($json->list[$tag]->rain)){ $wert = 0; }else{ $wert = $json->list[$tag]->rain; } „OpenWeatherMap ist ein Onlineservice, der eine frei nutzbare Programmierschnittstelle (API) für Wetterdaten, Wettervorhersagen, sowie historische Wetterdaten für die Entwickler von Webanwendungen und mobilen Geräten bereitstellt. OpenWeatherMap stellt eine freie API für den Zugriff auf freie Wetterdaten, Wettervorhersagen, sowie Wetterkarten mit Informationen über Wolken, Windgeschwindigkeiten und Luftdruck zur Verfügung. Alle Wetterdaten können im JSON, XML oder HTML Format bezogen werden.“ Quelle: Wikipedia Alle Informationen können im JSON-Format angefordert werden. Dieses Interface ist bereits entwickelt. Wetterstationen mit dem letzten Informationen Städte mit dem aktuellen Wetter Werdegang der Messungen von den einzelnen Stationen Wenn Daten von dieser Website genutzt werden müssen die Bestimmungen der CC-BY-SA Lizenz akzeptiert werden Unix-Timestamp Rechner Mit diesem Zeitrechner können Sie einen Unix-Timestamp in ein normales Datum umrechnen. Und umgekehrt ein normales Datum in einen Unix-Timestamp. Dies gilt für alle Zeiten nach dem 01.01.1970 bis zum 19.01.2038. Was ist ein Unix Timestamp? Der Unix-Timestamp gibt die Anzahl der Sekunden an, die seit dem 01.01.1970 vergangen sind. Zeitangaben in diesem Format werden z.B. bei der Programmierung von PHP und MySQL-Datenbanken benötigt. https://www.aritso.net/mehr-informationen/tools/timestampconverter.htm © von aritso.net echo $wert; Das folgende Beispiel soll als Anregung die eigene Anwendung dienen. In ihm wird die zu erwartende Regenmenge von morgen ermittelt. So kann z.B. entschieden werden, ob es Sinn macht heute den Rasen zu bewässern. Besitzer von Solaranlagen oder Wärmepumpen können mit Hilfe einer Temperaturvorhersage ihr Energiemanagement optimieren. Dabei ist zu beachten, dass die Temperatur in Kelvin angegeben wird – es muss also -273.15 abgezogen werden. Ferner lässt die Beschattung eines Gebäudes optimieren, wenn die zu erwartende Sonnenscheindauer und Höchsttemperatur vorher bekannt sind. In der API muss nur noch lediglich der eigene Standort / ID verändert werden. GEO_Weather_Report: {"coord":{"lon":7.45,"lat":46.95},"weather":[{"id":802,"main":"Clouds","description":"scattered clouds","icon":"03n"}],"base":"stations","main":{"temp":15.01,"pressure":1025,"humidity":93,"temp_min":13.33,"temp_max":16.11},"visibility":10000,"wind":{"speed":1.5,"deg":100},"clouds":{"all":40},"dt":1440104409,"sys":{"type":1,"id":6013,"message":0.0511,"country":"CH","sunrise":1440045272,"sunset":1440095487},"id":2661552,"name":"Bern","cod":200} get at 2015.08.20 22:58 Wind 1.5 m/s East (100 ) Cloudiness scattered clouds Pressure 1025 hpa Humidity 93 % Sunrise 6:34 Sunset 20:35 Geo coords [ 7.45, 46.95 ] Der Timestamp 1440105134 entspricht dem 20.08.2015 um 23:12:14 Uhr. (gilt für UTC+1 http://www.nswtrainlink.info/ GetRealIP2: { "ip": "46.5.18.9", "hostname": "HSI-KBW-046-005-018-009.hsi8.kabel-badenwuerttemberg.de", "city": "Tübingen", "region": "Baden-Württemberg Region", "country": "DE", "loc": "48.5311,9.0705", "org": "AS29562 Kabel BW GmbH", "postal": "72074" } Local IP: 192.168.0.21 DNS: 192.168.0.1,192.168.0.2 Host Name: MAXBOX9 Win64: False OS: The page you requested is no longer available. Please re-submit your request. USTRALIA dollar 1 euro 1:47 1 frNC 1:35 1 AUD = 0.6786 EUR 2/3 1 AUD = 0.741056 FRK 3/4 1 AUD - Receive 0.77106.3 CHF * There is no trackwork scheduled today. 10000 CHF - Receive 8793.767 EUR * 10000 CHF - Receive 12954.303 AUD * http://www.exchangerates.org.uk/currency/best-rate-search.html?from=AUD&amount=10&to=EUR&send=Compare //Sydney ? Melbourne Melbourne - Sydney NSW TrainLink XPT Daily Daily NSW TrainLink XPT Daily Daily Sydney Central depart 07:32 20:32 Melbourne (Southern Cross) 08:30 19:50 Melbourne (Southern Cross) 18:30 07:25 Sydney Central arrive 19:53 06:53 One-way fares per person: Economy seat 1st class seat 1st class sleeper Sydney - Melbourne Low season fare A$110 A$155 A$243 High season fare A$130 A$183 A$271 Weather REXTemp live: -1.42 in Kiruna by SE of 933 pressure and 92% humidity Weather REXTemp live: -1.4 in Koeln by DE of 970 pressure and 96% humidity Weather REXTemp live: -5.15 in Tuebingen by DE of 967 pressure and 82% humidity Weather REXTemp live: -14.77 in Kandersteg by CH of 787 pressure and 91% humidity Weather REXTemp live: -5.7 in Klagenfurt by AT of 917 pressure and 84% humidity Weather REXTemp live: -2.92 in Milano by IT of 997 pressure and 81% humidity Weather REXTemp live: -10.02 in Bern by CH of 925 pressure and 100% humidity Weather REXTemp live: 16.31 in Al Qiblah by KW of 1013 pressure and 87% humidity Weather REXTemp live: 18.96 in Perth by AU of 1014 pressure and 79% humidity Weather REXTemp live: 20.08 in Sydney by AU of 1023 pressure and 84% humidity Weather REXTemp live: 12.11 in Melbourne by AU of 1014 pressure and 84% humidity Weather REXTemp live: 12.23 in Adelaide by AU of 1018 pressure and 100% humidity Weather REXTemp live: 26.28 in Northern Territory by AU of 984 pressure and 25% humidity Weather REXTemp live: 12.18 in Devonport by AU of 991 pressure and 80% humidity Weather REXTemp live: 24.73 in Melbourne by US of 1035 pressure and 92% humidity Weather REXTemp live: 24.71 in Cairns by AU of 1007 pressure and 100% humidity Weather Report date: Mon, 30 Nov 2015 22:20:14 +0100 Weather REXT live: -3.01 in Kiruna by SE of 941 hPa, 95% hum -- 30/11/2015 09:07:30 sunrise 11:47:47 set Weather REXT live: 8.87 in Koeln by DE of 976 hPa, 95% hum -- 30/11/2015 07:12:11 sunrise 15:29:36 set Weather REXT live: 7.69 in Tuebingen by DE of 975 hPa, 95% hum -- 30/11/2015 06:53:47 sunrise 15:31:13 set Weather REXT live: 2.44 in Bern by CH of 941 hPa, 99% hum -- 30/11/2015 06:54:16 sunrise 15:43:32 set Weather REXT live: -8.51 in Kandersteg by CH of 804 hPa, 88% hum -- 30/11/2015 06:51:44 sunrise 15:44:19 set Weather REXT live: -0.54 in Klagenfurt by AT of 927 hPa, 63% hum -- 30/11/2015 06:25:44 sunrise 15:17:16 set Weather REXT live: -0.84 in Milano by IT of 1009 hPa, 76% hum -- 30/11/2015 06:42:03 sunrise 15:41:50 set Weather REXT live: 14.84 in Al Qiblah by KW of 1013 hPa, 71% hum -- 30/11/2015 03:24:26 sunrise 13:49:15 set Weather REXT live: 28.92 in Darwin by AU of 1018 hPa, 88% hum -- 29/11/2015 20:41:26 sunrise 09:29:23 set Weather REXT live: 20.74 in Northern Territory by AU of 985 hPa, 91% hum -- 29/11/2015 20:15:31 sunrise 09:30:06 set Weather REXT live: 20.97 in Alice Springs by AU of 956 hPa, 59% hum -- 29/11/2015 20:08:57 sunrise 09:37:39 set Weather REXT live: 24.74 in Exmouth by AU of 1021 hPa, 100% hum -- 29/11/2015 21:31:23 sunrise 10:53:15 set Weather REXT live: 15.62 in Perth by AU of 1023 hPa, 90% hum -- 29/11/2015 21:03:36 sunrise 11:07:32 set Weather REXT live: 15.69 in Adelaide by AU of 1010 hPa, 85% hum -- 29/11/2015 19:25:14 sunrise 09:43:44 set Weather REXT live: 14.54 in Melbourne by AU of 1002 hPa, 73% hum -- 29/11/2015 18:52:12 sunrise 09:25:56 set Weather REXT live: 10.17 in Devonport by AU of 979 hPa, 84% hum -- 29/11/2015 18:36:50 sunrise 09:30:14 set Weather REXT live: 19.94 in Canberra by AU of 938 hPa, 57% hum -- 29/11/2015 18:42:14 sunrise 09:02:29 set Weather REXT live: 23.82 in Sydney by AU of 1018 hPa, 74% hum -- 29/11/2015 18:37:27 sunrise 08:50:36 set Weather REXT live: 23.79 in Brisbane by AU of 1017 hPa, 95% hum -- 29/11/2015 18:44:42 sunrise 08:28:43 set Weather REXT live: 25.32 in Rockhampton by AU of 1018 hPa, 83% hum -- 29/11/2015 19:03:06 sunrise 08:30:31 set Weather REXT live: 24.69 in Cairns by AU of 1008 hPa, 100% hum -- 29/11/2015 19:34:00 sunrise 08:37:24 set Weather REXT live: 25.04 in Melbourne by US of 1030 hPa, 89% hum -- 30/11/2015 11:56:22 sunrise 22:26:15 set How do get your weather location: GetRealIP2: { "ip": "109.192.195.6", "hostname": "HSI-KBW-109-192-195-006.hsi6.kabel-badenwuerttemberg.de", "city": "Tübingen", "region": "Baden-Württemberg Region", "country": "DE", "loc": "48.5311,9.0705", "org": "AS29562 Kabel BW GmbH", "postal": "72074" } MyPublicIP: 109.192.195.6 GetRealIP2: { "ip": "109.192.195.6", "hostname": "HSI-KBW-109-192-195-006.hsi6.kabel-badenwuerttemberg.de", "city": "Tübingen", "region": "Baden-Württemberg Region", "country": "DE", "loc": "48.5311,9.0705", "org": "AS29562 Kabel BW GmbH", "postal": "72074" } str:= UTF8ToAnsi(str) GetRealIP2: { "ip": "109.192.195.6", "hostname": "HSI-KBW-109-192-195-006.hsi6.kabel-badenwuerttemberg.de", "city": "Tübingen", "region": "Baden-Württemberg Region", "country": "DE", "loc": "48.5311,9.0705", "org": "AS29562 Kabel BW GmbH", "postal": "72074" } Sunday, 29 Nov 2015 00:31 Standard Time Zone: GMT/UTC + 10:00 hour Daylight Saving Time: DST in use +1 hour Current Time Zone offset: GMT/UTC + 11:00 Sunday, 29 Nov 2015 12:31 AM Standard Time Zone: GMT/UTC + 10:00 hour Daylight Saving Time: DST in use +1 hour Current Time Zone offset: GMT/UTC + 11:00