Clicky

20200308

Trust comes by foot and goes by horse

In this post, I showed a geolocation lookup method for hMailserver, using a free geolocation webservice. At some point in time this webservice arrived in the DNSBL blacklist, and the geolocation lookups failed.

I do not have a clue why this service was placed on the blacklist, but during the time that it worked, I noticed that some malicious IP addresses were mapped to NL/Amsterdam instead of the country/locations that other geolocation services provide (so the trust in de geolocation webservice is lost here).

There are two things that we can do: place the existing geolocation service on the whitelist or use a local geolocation database. Since IPv4 addresses/subnets will not change that fast (anymore), it is a feasable solution to use a local database for lookups. So here we go!

You need to download the database itself and a (command line) tool to query the database. Create an account with Maxmind (https://www.maxmind.com/en/home) and download GeoLite2-Country.mmdb and mmdbinspect.exe

This is the modified geolookup function:

    function IPtoGeoLocal(IPaddr)

        const geoDbPath     = "{path to}\GeoLite2-Country.mmdb"
        const geoLookupExe  = "
{path to}\mmdbinspect.exe"
        const tempPath      = "c:\temp"
        const searchString  = "iso_code"
       
        dim wsh, fso
        set wsh = createobject("wscript.shell")
        set fso = createobject("scripting.filesystemobject")
       
        '--- Create a temp file with a unique filename to prevent conflicts...
        tempFile = tempPath & "\" & IPaddr & ".dat"
        geoLoc = "XX"

        '--- Invoke Maxmind command line tool, do a lookup and pipe the result in tempFile...
        runString = "cmd /c " & geoLookupExe & " --db " & geoDbPath & " " & IPaddr & " | find """ & searchString & """ > " & tempFile
        wsh.run runString,0,true
       
        '--- Read one line from tempFile...
        set f = fso.openTextFile(tempFile) : s = f.readLine : f.Close
        fso.deleteFile tempFile, true
       
        t = split(s, chr(34))
        if Instr(s, searchString) > 0 then IPtoGeoLocal = t(3)   
       
    end function


When the function is called:

wscript.echo IPtoGeoLocal("8.8.8.8")

You will get the two character ISO3166 code back ("US") or "XX" when the IP address is not found in the database. 

20200303

Capacitor Plague, deel 3

Vervolg op deel 1 en deel 2.

Op mijn studeerkamer hangt al een jaar of 9 een LG TV. Die begon kuren te vertonen. Als 'ie aan werd gezet met de afstandsbediening hoorde je het relais schakelen, maar de TV ging niet aan. Alleen nadat de voedingstekker ongeveer 15 seconden uit de wandcontactdoos gehaald was, en het lichtje op de voorkant van de TV gedoofd, kon de TV weer aangezet worden.

Een mogelijk geval van "brownout". De electronica bestaat uit een voedingsprint en een TV print. Op de voedingsprint zit een 5VDC voeding met twee elco's die bol stonden en electroliet lekte:



Twee vervangende elco's gesoldeerd en de TV werkte weer als een zonnetje:


Wat opviel was dat de twee originele elco's (merk: Sam Young, type: NXT, 1500uF, 6.3V) de enige van dit merk en type waren op de gehele voedingsprint. Het specificatieblad van deze serie elco laat ook zien dat 'ie zeer slechte specificaties heeft. Terwijl de overige elco's van betere kwaliteit zijn. Dit doet sterk vermoeden dat LG hier bezig is geweest met geplande veroudering.

Hoe dan ook, dit is toch de laatste LG TV vanwege dit akkefietje en een aantal andere zaken met LG die niet in de haak waren.

P.S. ik ben niet de enige met precies hetzelfde probleem in een LG TV: https://www.youtube.com/watch?v=eZna3Fj3O4Q&feature=youtu.be 



Real Time Web Analytics