Sprawdzanie sumy CRC online

Sprawdzanie sumy CRC online
XA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 65
0

Witam,
Czy jest możliwość napisania aplikacji, która sprawdzałaby CRC pliku, który jest umieszczony na koncie ftp?
Ze sprawdzeniem rozmiaru jakiegoś pliku nie ma problemu.

Kopiuj
 
   HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create("http://www.jakisplik.exe");
                myReq.Method = "HEAD";

                    HttpWebResponse myResp = (HttpWebResponse)(myReq.GetResponse()); 
                    long len = myResp.ContentLength; 

a czy da się sprawdzić CRC takiego pliku?

W sumie napisze co chcę osiągnąć.
Mam na dysku jakiś plik (załóżmy plik1.exe)
oraz na serwerze ftp inny plik (plik2.exe)

W jaki sposób sprawdzić, czy oba te pliki są takie same (porównywanie poprzez rozmiar odpada, bo zawartość może być inna mimo takiego samego rozmiaru)

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
0

Możesz pobrać ten plik i policzyć jego CRC, ale to mija się z celem.
Po prostu pobierz ten plik i porównaj jego zawartość.

  • Rejestracja: dni
  • Ostatnio: dni
0

Dość popularną praktyką jest umieszczenie na serwerze http / ftp drugiego pliku obok z tą samą nazwą, ale rozszerzeniem .md5 zawierającym wyliczoną sumę kontrolną tego pliku
Jeśli właściciel pliku o tym nie pomyślał no to niestety magii nie ma - nie da się wyliczyć sumy kontrolnej niepobranego pliku (chyba że masz dostęp do uruchamiania poleceń zdalnych na serwerze).

Niektóre serwery HTTP w zależności od konfiguracji wysyłają nagłówek ETag - jest to suma kontrolna pliku, niestety nie jesteś w stanie stwierdzić jakiego algorytmu użyto do jej wyliczenia bo nie jest to z góry narzucone
Prawie pewne jest jednak że jeśli tag ETag zgodzi się z tym co było wcześniej to plik się nie zmienił
Możesz nawet w zapytaniu to określić wysyłając do serwera nagłówek If-None-Match i wpisując tam znany ETag - serwer w takim przypadku zacznie wysyłać plik tylko w przypadku jeśli się on zmienił. Jeśli się nie zmienił to odpowie tylko statusem 304 Not Modified

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.