2013-04-02 7 views
12

Per le ultime settimane, mi è stato purga internet, le menti dei programmatori di computer, e solo poche persone a caso per la situazione che sto cercando di superare. Fondamentalmente, quello che sto cercando di fare è scrivere un "plugin" AntiJoinBot (se vuoi) per il popolare gioco Minecraft. Questo sarebbe come tutti gli altri rispetto al fatto che blocca gli IP in base a se essi stanno usando un proxy o meno, ma questo AntiJoinBot è in esecuzione su un VPS diverso dal server attuale.Riorientare un IP in Java

Questo è il miglior grafico che posso fare della situazione (non è che buona):

(server non-minecraft) Connessione -> controllo Proxy -> reindirizza al server -> Minecraft

L'unico problema è che devo essere in grado di reindirizzare l'IP e chiudere la connessione in modo che l'IP reale del lettore sia quello che si connetterà al server. Se la connessione non è in grado di essere chiusa, causerebbe problemi reali a causa di alcuni dei plugin che stiamo utilizzando.

Se si dispone di una soluzione o un modo migliore per fare questo, ti prego, aiutami.

+0

C'è un motivo specifico per cui non si può semplicemente mettere entrambi gli elementi sullo stesso server e intercettare tutto il traffico del server con un assegno proxy? – MathSquared

+0

Sì, il bot di join continuerà a utilizzare le risorse del server. Sto cercando di evitarlo. – Enosis

+0

Se l'interfaccia del server minecraft è puro HTTP, è possibile che si possa ottenere un reindirizzamento HTTP a condizione che il client stia utilizzando le librerie HTTP standard che potrebbero supportarlo. Se il client/server non sta utilizzando HTTP ma alcuni protocolli binari personalizzati (sembra probabile), non è possibile eseguire un reindirizzamento senza una mod al client. Puoi comunque fare un proxy completo. Se trovi un modo per eseguire un reindirizzamento, come impedirai ai client malintenzionati di archiviare semplicemente l'IP reindirizzato e bypassare completamente il server? – Pace

risposta

3

reindirizzamento delle connessioni lungo le linee che si desidera richiede il supporto del protocollo (applicazione). TCP/IP non lo supporta. AFAIK, SOCKS non lo supporta neanche. A meno che il protocollo dell'applicazione Minecraft (e implicitamente, i client e i server Minecraft) includano il supporto per il reindirizzamento, sei sfortunato.

(FWIW - è così che funziona il reindirizzamento HTTP. HTTP ha un "elemento protocollo" che consente al server di dire al client di reindirizzare e dove reindirizzare. Il client quindi rinvia la richiesta originale a un nuovo indirizzo.)

Ma questo non significa che non si può trattare con i parassiti. Significa solo che l'approccio di reindirizzamento non è fattibile. Prova invece un proxy personalizzato o un filtro/redirector IP.

0

si sta cercando di salvare le risorse del server sul costo di aumentare il traffico. Non sono sicuro della risposta, ma potrebbe essere guardando il concetto di LBS (Load Balancing Server) che potresti trovare la risposta. LBS è puramente definito e controllato da noi in modo da poter gestire le risorse di due server utilizzando un server di bilanciamento del carico.