Blog: http://www.ddcs.re
e-mail: exportit.ddcs@gmail.com
Έχει ως κύριο στόχο να επιτραπεί η χρήση των δεδομένων σας που βρίσκονται στο Android κινητό σας τηλέφωνο ή το tablet, σε άλλες συσκευές, όπως ένα άλλο σύστημα Android ή τον υπολογιστή σας, ή αν τα μέσα μαζικής ενημέρωσης είναι συμβατό στην οθόνη της τηλεόρασής σας. Προς τούτο, χρησιμοποιεί τα πιο βασικά πρωτόκολλα, UpnP και Http.
να εξάγει υλοποιεί ένα διακομιστή και πελάτη (δύο εικονίδια στην επιφάνεια εργασίας σας Android). Ο διακομιστής οικοδομήσουμε μια λίστα με βίντεο, ήχο και αρχεία εικόνας, και, επιπλέον, το PDF και e-Book αρχεία που μπορείτε να βρείτε στο Android σας σύστημα. Ο κατάλογος αυτών των αρχείων με τα χαρακτηριστικά τους καθορίζονται στη μνήμη και δημοσιεύονται μέσω ενός ευρετηρίου UpnP Υπηρεσία και ενός διακομιστή HTTP.
Τα αρχεία διανέμονται μόνο σε τέσσερις κατηγορίες: τα αρχεία βίντεο (MP4, WebM και 3gpp) τα αρχεία ήχου (mp3, ogg και m4a), τα αρχεία εικόνας (jpeg, gif ή png), και ebooks (pdf, prc, epub, ΠΣΠ, mobi και djvu).
Ο διακομιστής δεν είναι σχεδιασμένο για να διαχειρίζεται χιλιάδες αρχεία, μερικές εκατοντάδες μοιάζει με αυτό που έχουμε συνήθως σε ένα τηλέφωνο ή δισκίο.
Πρώτα απ 'όλα, μόλις αρχίσει το διακομιστή και να περιμένει το τέλος της διαδικασίας προετοιμασίας. Αν είστε σε Wi-Fi ή δικτύου κινητής τηλεφωνίας, μπορείτε να ελέγξετε την κατάσταση και τις διευθύνσεις URL για να το δοκιμάσετε. Fort περισσότεροι από τους ανθρώπους ο διακομιστής δεν είναι προσβάσιμη από το δίκτυο κινητής τηλεφωνίας. Θα πρέπει πρώτα να ελέγξετε τι server σας διανέμει με ένα κατάδειξης web browser με την τοπική URL μετά από να πάει έξω από το παράθυρο του διακομιστή (το πραγματικό server τρέχει στο παρασκήνιο). Είναι επίσης δυνατό να χρησιμοποιήσετε τη διεύθυνση loopback IPv6 για να αποκτήσετε πρόσβαση στη σελίδα HTML από τον browser σας με ένα URL όπως "http://[::1]:8192".
Ως δεύτερο βήμα, μπορείτε να χρησιμοποιήσετε τη διαμόρφωση του διακομιστή για να αλλάξετε το όνομα του διακομιστή σας και ίσως να προσαρμόσει το μέγεθος της γραμματοσειράς για τη γλώσσα και τη συσκευή σας.
Το επόμενο βήμα συνίσταται στον καθορισμό ένα όνομα χρήστη και κωδικό πρόσβασης ως διαχειριστής με πρόσβαση σε όλες τις κατηγορίες.
Όταν λειτουργεί, μπορείτε να ορίσετε επιπλέον ονόματα χρηστών με πρόσβαση σε συγκεκριμένες κατηγορίες.
Και τέλος, μπορείτε να ορίσετε "προώθηση θυρών" όταν είστε συνδεδεμένοι στο σπίτι Wi-Fi σας να είναι προσβάσιμη από το Internet. Εάν χρησιμοποιείτε την πλήρη εφαρμογή με την υποστήριξη UPnP, έχετε μόνο να ορίσετε μια μη μηδενική λιμάνι ψευδώνυμο στη διαμόρφωση και ελέγξτε την κονσόλα αν αυτό δουλεύει. Με τη δωρεάν εφαρμογή θα πρέπει να ρυθμίσετε χειροκίνητα ADSL router σας. Όταν φαίνεται καλό, μπορείτε να το δοκιμάσετε από το σπίτι με οποιοδήποτε web browser που έχετε, χρησιμοποιώντας ένα ελεύθερο πληρεξούσιο δημόσια Web με υποστήριξη Javascript.
HTTPS αν υποστηρίζεται, δεν φαίνεται να είναι το καλύτερο για τους απλούς χρήστες, λόγω της πολυπλοκότητας για να το χρησιμοποιήσετε με smartphones και των φτωχών επιδόσεων σε σύγκριση με απλό HTTP.
Όταν θύρα προώθησης και ελέγχου ταυτότητας εργάζονται, μπορείτε να χρησιμοποιήσετε την επιλογή "κλαμπ" για να είναι εύκολα προσβάσιμη στο διαδίκτυο, τη δημοσίευση των δεδομένων σας στο www.ddcs.re. Για να δοκιμάσετε το δικό σας server απαιτεί τη χρήση ενός διακομιστή μεσολάβησης Web, επειδή το δικό σας διεύθυνση εξωτερική IP δεν είναι προσβάσιμο από το δίκτυο Wi-Fi σας. Αυτή η επιλογή επιτρέπει να αποφευχθεί η διανομή ενός μεταβαλλόμενου διεύθυνση URL με τη διεύθυνση IP και τον αριθμό θύρας, απλά κάντε κλικ στη δεξιά γραμμή του server που ορίζεται από το όνομα του διακομιστή σας, μια μικρή περιγραφή πρόταση και ένα από την εικόνα σας ως εικονίδιο.
Η υποστήριξη UPnP παρέχεται από Teleal Cling 1.0.5 (Copyright (C) 2010 Teleal GmbH, Ελβετία), και το HTTP Server είναι χτισμένο στην κορυφή του NanoHTTPD έκδοση 1.25, Copyright 2001,2005-2012 Jarno Elonen και το 2010 ο Κωνσταντίνος Τόγιας. Έτσι, αυτή η εφαρμογή περιέχει LGPL λογισμικό. Και οι δύο είναι τροποποιημένες εκδόσεις, δεν είναι εγγενή κώδικα. Η βιβλιοθήκη Cling teleal είναι μόνο ένα βάζο αρχείων ενσωματωμένη με μερικές τροποποιήσεις που απαιτούνται από την εφαρμογή από cling-core, cling-support (1.0.5) και teleal-common (1.0.14) αρχεία βάζο ... NanoHttpd τροποποιήθηκε ώστε να υποστηρίζει τη μέθοδο "HEAD", για να προσθέσετε τις κεφαλίδες HTTP DLNA, αίτημα καταγραφής και να παράσχει μια πρώτη αρχική σελίδα. Ο πηγαίος κώδικας είναι διαθέσιμος ως εκτελέσιμο.
Όλα τα emoticons που χρησιμοποιούνται στις παρατηρήσεις σχεδιασμένα και κατασκευασμένα από Enrico Gollnow (Erni). Επισκεφθείτε την ιστοσελίδα του για να βρει περισσότερες πληροφορίες γι 'αυτόν και τα χαμόγελα του (http://www.gomotes.com).
Η ρουτίνα κρυπτογράφηση των κωδικών πρόσβασης χρησιμοποιεί jsbn βιβλιοθήκη Τομ Γου (Javascript BigInteger και RSA) στο δικτυακό πλευρά του προγράμματος περιήγησης και η βιβλιοθήκη της Java SpongyCastle από την πλευρά του διακομιστή.
Αυτή η εφαρμογή χρησιμοποιεί το JmDNS, μια εφαρμογή DNS πολλαπλών καναλιών σε Java για την ανεύρεση και την εγγραφή υπηρεσιών. Αυτή η βιβλιοθήκη είναι πλήρως διαλειτουργική με το πρωτόκολλο Bonjour της Apple. Όλες οι ευχαριστίες μου στους Arthur van Hoff, Rick Blair και Kai Kreuzer, για αυτή την αποτελεσματική βιβλιοθήκη με άδεια χρήσης Apache License, Έκδοση 2.0.
Αυτή η εφαρμογή χρησιμοποιεί ένα πρόγραμμα αναπαραγωγής βίντεο HTML5 που ονομάζεται Playr που αναπτύχθηκε από τον Julien 'delphiki' Villetorte gdelphiki@gmail.com υπό την άδεια MIT, όλες τις ευχαριστίες μου για αυτή την εξαιρετική δουλειά και την άδεια χρήσης της.
Χρησιμοποιούμε το PDF.JS για να εμφανίζουμε αρχεία PDF μέσω WebView. Αυτό το έργο ανοιχτού κώδικα υπόκειται σε άδεια έκδοσης Apache 2. Το PDF.js (https://mozilla.github.io/pdf.js/) είναι ένα πρόγραμμα προβολής φορητής μορφής εγγράφου (PDF) που έχει δημιουργηθεί με HTML5. Το PDF.js βασίζεται στην κοινότητα και υποστηρίζεται από τη Mozilla.
Το πακέτο epubjs-reader (https://github.com/futurepress/epubjs-reader) χρησιμοποιείται για epub eBook και τα βιβλία εμφανίζονται σε μια προβολή Web. Αυτό το λογισμικό διατίθεται μέσω άδειας MIT.
Τώρα χρησιμοποιούμε το Acme4J ως Java Client (https://shredzone.org) για το πρωτόκολλο _Automatic Certificate Management Environment_ (ACME) όπως ορίζεται στο RFC 8555 (https://tools.ietf.org/html/rfc8555 ). Το ACME είναι ένα πρωτόκολλο που μια αρχή έκδοσης πιστοποιητικών (CA) και ένας αιτών μπορούν να χρησιμοποιήσουν για να αυτοματοποιήσουν τη διαδικασία επαλήθευσης και έκδοσης πιστοποιητικού. Είναι μια ανεξάρτητη εφαρμογή ανοιχτού κώδικα που δεν σχετίζεται ούτε υποστηρίζεται από το Let's Encrypt.
Το Acme4J χρειάζεται τη βιβλιοθήκη Jose4j (https://bitbucket.org/b_c/jose4j/wiki/Home), η οποία είναι μια ισχυρή και εύκολη στη χρήση εφαρμογή ανοιχτού κώδικα του JSON Web Token (JWT) και της σουίτας προδιαγραφών JOSE.
Οι δύο κύριες συνιστώσες είναι ο διακομιστής και ο πελάτης, και, μετά την εγκατάσταση, έχετε δύο εικονίδια στην επιφάνεια εργασίας σας.
Ο διακομιστής ξεκινά μια μακρά λειτουργία των υπηρεσιών που είναι στην πραγματικότητα, το πραγματικό server Media παρέχει υπηρεσίες UPnP και HTTP. Η υπηρεσία αυτή λειτουργεί στο παρασκήνιο, μόνο ένα μικρό εικονίδιο ειδοποίησης βρίσκεται στην γραμμή εργασιών Android. Ένα σημαντικό υποεργασίας του διακομιστή, είναι η διαμόρφωση. Από προεπιλογή, ο εξαγωγές server, όλα τα αρχεία δεδομένων σας στο τοπικό δίκτυο Wi-Fi. Μπορείτε να ενεργοποιήσετε / απενεργοποιήσετε τα αρχεία μέσα από τη διαμόρφωση.
Τα δεδομένα διαδικασίες των πελατών που διανέμεται από UPnP servers που βρέθηκαν στο τοπικό δίκτυο (Wi-Fi). Έχει ως δευτερεύουσες ένα Mediaplayer για την προβολή mp4, WebM ή 3gpp βίντεο και να ακούτε MP3, OGG ή αρχεία ήχου m4a, ένα παράθυρο διαλόγου WebView για την προβολή φωτογραφιών. Επιπλέον, μία υπηρεσία υποβάθρου μπορεί να ξεκινήσει για το κατέβασμα αρχείων από το διακομιστή. Όταν αρχίσει πριν από τον server, ο πελάτης προετοιμαστεί η υπηρεσία UPnP, αλλά χωρίς να διανείμει τα αρχεία δεδομένων, ένα είδος άδειο διακομιστή. Η υπηρεσία αυτή είναι απαραίτητη για να αποκτήσετε πρόσβαση σε άλλους servers UPnP.
Στις ρυθμίσεις του συστήματος, τότε προηγμένες ρυθμίσεις, μπορείτε να βρείτε διευθυντής της μπαταρίας. Για να διατηρήσετε το διακομιστή και λειτουργεί σε μόνιμη βάση, θα πρέπει να επιλέξετε την απόδοση για το σχέδιο παροχής ενέργειας, και να ενεργοποιήσετε αυτό το app σε προστατευόμενες εφαρμογές και έντασης ρεύματος εφαρμογές.
Αν είναι εφικτό θα πρέπει να κρατήσει WiFi σας ενεργή όταν η συσκευή σας κοιμάται και ο διακομιστής τρέχει, και, επιπλέον, αν η συσκευή σας διαθέτει ενσωματωμένο στοίβα DLNA, δεν θα πρέπει να κοιτάξουμε για "κοντινές συσκευές" στις ρυθμίσεις του συστήματος.
ο διακομιστής απαιτεί πρόσβαση στο σύστημα αρχείων και να διαβάσετε τις ρυθμίσεις του τηλεφώνου για την ανίχνευση αλλαγές κατάστασης, όπως για Wifi ή αν μετάδοση δεδομένων ενεργοποιείται όταν συνδέεται με το δίκτυο κινητής τηλεφωνίας. Προαιρετικά ο διακομιστής μπορεί να στείλει SMS όταν η εξωτερική διεύθυνση IP έχει αλλάξει (επιλογή στη διαμόρφωση) και τον κωδικό χώρας από Access_Coarse_Location, (Όχι μια ακριβή τοποθεσία μόλις ο κωδικός χώρας δύο γραμμάτων). Το πρόγραμμα-πελάτης χρησιμοποιεί την άδεια για να γράψει σε εξωτερικό μέσο αποθήκευσης για την αποθήκευση των αρχείων, και το ρεκόρ άδεια ήχου για την προβολή καμπύλες όταν ακούτε μουσική.
Για να δημοσιεύσετε αρχεία στο Internet με το διακομιστή να εξάγει σας, θα πρέπει να ρυθμίσετε τη θύρα ψευδωνύμων του διακομιστή HTTP στο ADSL router σας. Πρωτόκολλο UPnP δεν είναι διαθέσιμο στο διαδίκτυο, μόνο HTTP. Ο προεπιλεγμένος αριθμός θύρας είναι 8192 (μπορείτε να το τροποποιήσετε με τη διαμόρφωση), και μια θύρα ψευδώνυμο για το δημόσιο δίκτυο, πρέπει να δοθεί στο ADSL router που συνδέονται με τη διεύθυνση Wifi IP του διακομιστή να εξάγει. Ο προεπιλεγμένος αριθμός εξωτερική θύρα στη διαμόρφωση είναι 0, αλλά μπορείτε να ορίσετε ό, τι θέλετε, όπως 8192 ή 80. Η διεύθυνση URL που θα χρησιμοποιηθεί για πρόσβαση στο διακομιστή σας, δίνεται στην πάνω δεξιά πλευρά του παραθύρου ελέγχου διακομιστή.
Ο διακομιστής Ιστού μου υποστήριζε το HTTPS με αυτουπογεγραμμένα πιστοποιητικά εδώ και χρόνια, αλλά, παρόλο που λειτουργεί, με αυτόν τον τρόπο εμφανίζονται προβλήματα και μηνύματα σφάλματος. Αυτός είναι ο λόγος που αποφάσισα να εφαρμόσω το πρωτόκολλο Automatic Certificate Management Environment_ (ACME), για να αποκτήσω και να διατηρήσω τυπικά πιστοποιητικά X509.
Το πρωτόκολλο ACME έχει ορισμένες τεχνικές απαιτήσεις, δεν μπορεί να χρησιμοποιηθεί για όλους. Για να χρησιμοποιήσετε αυτό το πρωτόκολλο, χρειάζεστε ένα σταθερό όνομα DNS στην εξωτερική σας διεύθυνση IP. Το πιστοποιητικό X509 πρέπει να οριστεί μόνο σε όνομα DNS και όχι σε διευθύνσεις IP.
Για να λάβετε το πιστοποιητικό από το Let's Encrypt, πρέπει να χρησιμοποιήσετε έναν διακομιστή HTTP με τον τυπικό αριθμό θύρας (80) σε αυτό το εξωτερικό όνομα DNS. Με την αίτησή μου, μπορείτε να λάβετε το πιστοποιητικό μόνο σε διακομιστή που λειτουργεί με ψευδώνυμο εξωτερικής θύρας HTTP που έχει οριστεί σε "80". Μόνο ένας διακομιστής μπορεί να χρησιμοποιήσει αυτήν την τιμή στο οικιακό σας δίκτυο Wi-Fi. Όταν διαθέτετε έγκυρο πιστοποιητικό, μπορείτε να χρησιμοποιήσετε την προεπιλεγμένη θύρα HTTPS "443" μόνο σε έναν από τους διακομιστές Ιστού που έχετε ορίσει ως "θύρα ψευδώνυμου". Ωστόσο, για να αποφύγετε το "root" της συσκευής σας, θα πρέπει να χρησιμοποιήσετε θύρες πάνω από 1024 ως "τοπικούς" αριθμούς θυρών βάσει του δείγματος 8080 για HTTP και 8443 για HTTPS.
Ο πίνακας "διαμόρφωση" έχει τροποποιηθεί για να υποστηρίζει ψευδώνυμα θύρας για πρωτόκολλα HTTP και HTTPS και επιπλέον μπορείτε να δώσετε ένα όνομα DNS που γνωρίζετε ότι λειτουργεί, για την εξωτερική σας διεύθυνση IP Αυτό το όνομα θα οριστεί στο πιστοποιητικό X509 εκτός από το όνομα του παρόχου δικτύου σας, εάν έχετε. Το πιστοποιητικό διανέμεται αυτόματα σε άλλους διακομιστές εξαγωγής που εκτελούνται στο ίδιο δίκτυο Wi-Fi, επιτρέποντας τη χρήση HTTPS μέσω Διαδικτύου αλλά με άλλες τιμές ψευδωνύμου θύρας.