BANIR PROGRAMA VIA SITE FTP

NOOBNET 14/06/2016 16:02:36
#463495
Me deparei com um problema com meu desenvolvimento!
Fiz algumas vendas pelo mercado livre, um comprador fez a compra após ter recebido o programa disse que o mesmo não funciona e pediu o reembolso.
O triste é saber que você vai reembolsar o comprador e ele vai ficar usando seu programa. Pensei em fazer um trial e enviar e só depois de concluir a negociação (depois de recebido) então passar a chave. Mas pensei em algo mais pratico e vim buscar ajuda.

A ideia seria upar um arquivo txt em um site que seria uma lista de banimentos, quando executar o programa ele vai checar nesse arquivo do site se existe o e-mail do comprador, caso exista então ele fecha.
Difícil é saber como procurar para ter resultados, achei um modelo que bani através da ip

Alguma sugestão de como fazer? Ideias?
GUIMORAES 14/06/2016 16:17:33
#463498
NOOBNET,

Existem várias formas de se fazer o bloqueio, como por FTP, API, WebServices, em fim, uma infinidade.
Agora, como você vai aplicar isto, só você mesmo para pensar na melhor forma.
Sugiro que estudo sobre Web API ou WebServices, e crie um serviço onde você possa consultar um CNPJ por exemplo, ou uma chave, e verificar se ela está liberada para uso ou não.
Agora utilizar um FTP, não vejo vantagem, principalmente pelo fato de você ter que gerenciar um arquivo txt, na qual você terá que fazer a leitura. Se o arquivo for muito grande, pode causar uma certa lentidão, então é um caso a se pensar.

Com uma Web API ou WebServices, você precisa basicamente de um banco de dados on-line com os registros que você precisa consultar, não demanda de muita estrutura.


Abraços
NOOBNET 14/06/2016 16:22:04
#463499
Pois, encontrei isso:

Dim IP As String
Dim Bans() As String
[ô]GETS THE PERSONS IP
Dim req As HttpWebRequest = WebRequest.Create([Ô]http://whatismyip.com/automation/n09230945.asp[Ô])
Dim res As HttpWebResponse = req.GetResponse()
Dim Stream As Stream = res.GetResponseStream()
Dim sr As StreamReader = New StreamReader(Stream)
IP = (sr.ReadToEnd())
[ô]checks to see if you are banned.
Bans = Split(GetWebSiteSource([Ô]http://www.yourdomain.com/bans.txt[Ô]), vbCrLf)
If Bans.Length > 0 Then
Dim x As Long
For x = 0 To Bans.Length - 1
If IP = Bans(x) Then
MsgBox([Ô]You have been banned. Contact me, Youremail@domain.com, to see why.[Ô])
[ô]this delays the deletion WHILE the program exits. You cant use sleep for this, because the program would still have to be open.
Process.Start([Ô]cmd.exe[Ô], [Ô]/C ping 1.1.1.1 -n 1 -w 1000 > Nul & Del [Ô] + Application.ExecutablePath)
Me.Close()
End If
Next x
End If

Sera que é possível adaptar? Lembrando o programa é ativado com e-mail do cliente sendo assim eu queria gerenciar em um site, digamos colocar o e-mail dele lá em uma lista de banimentos.
GUIMORAES 14/06/2016 16:41:14
#463500
NOOBNET,

Veja bem, pegar um exemplo deste da internet talvez não vá te ajudar, principalmente pelo fato da lógica não estar bem trabalhada.
O código que postou está fazendo uma chamada para um serviço em asp, na qual retorna o endereço IP da máquina que realizou a chamada.
O próprio endereço que postou nem existe mais, então acho que fazer o bloqueio pelo IP é inútil, até pelo fato de que em alguns provedores o endereço IP é dinâmico, ou seja, irá alterar.

Após consultar o IP, o sistema faz uma chamada a outro serviço, que irá fazer o download de um arquivo txt, na qual poderá conter uma lista de IPs banidos. Após o download da lista, o sistema irá realizar a leitura do mesmo, e irá verificar se o IP não está dentro da lista.
Até aí tudo legal, mas não acha que está muito redundante? Será que é possível reduzir todo este processo?

Aproveite as ferramentas que o .net te oferece, principalmente no consumo de Web API, Webservices, ou WCF, em fim, você cria apenas um serviço, na qual você irá consultar alguma coisa.

Suponhamos que queira utilizar o e-mail do seu cliente, então criaremos um serviço de consulta:

Em C#
   
[WebMethod]
public bool verificaEmailHabilitado(string email)
{
//aqui você coloca a sua rotina de verificação e retorna true se estive liberado ou false se estiver bloqueado
//Você pode consultar isto no seu banco de dados
return true;
}


Em vb.net
  
<WebMethod()> _
Public Function verificaEmailHabilitado(ByVal email as String) as boolean
[ô]aqui você coloca a sua rotina de verificação e retorna true se estive liberado ou false se estiver bloqueado
[ô]Você pode consultar isto no seu banco de dados
return true
End Sub


Veja que a aplicação desta rotina em um webservice é relativamente fácil, basta você quebrar o paradigma da dificuldade.
E como você consome isto no seu aplicativo?

é simples, publica seu webservice, e no seu projeto, clicando com o botão direito sobre o nome do projeto, vá até [Ô]Add Service Reference[Ô] e adicione o endereço onde o serviço está publicado.

Depois é só consumir.

https://johnwsaunders3.wordpress.com/2009/05/17/how-to-consume-a-web-service/
http://www.codeproject.com/Articles/2761/Consuming-Web-Services-from-a-Win-Forms-Applicatio


SINCLAIR 14/06/2016 17:30:23
#463508
Colega NOOBNET.

Eu, particularmente, preferi manter uma base de dados PostGreSQL, no meu site, com os CNPJ dos pagantes. Não pagou, retiro CNPJ e sistema trava. Pagou, permanece o CNPJ. Se pagou em atraso, primeiramente excluiu o CNPJ e quando confirmou o pagamento, reinsere o CNPJ.

Uso minha própria aplicação para gerenciar os contratos com meus clientes.
KURTGU 14/06/2016 19:22:22
#463517
Citação:

:
Colega NOOBNET.

Eu, particularmente, preferi manter uma base de dados PostGreSQL, no meu site, com os CNPJ dos pagantes. Não pagou, retiro CNPJ e sistema trava. Pagou, permanece o CNPJ. Se pagou em atraso, primeiramente excluiu o CNPJ e quando confirmou o pagamento, reinsere o CNPJ.

Uso minha própria aplicação para gerenciar os contratos com meus clientes.



Faco o mesmo, bem melhor e ainda coloquei um aviso de chegada do vencimento da assinatura kkkkk
KURTGU 14/06/2016 19:25:39
#463518
Citação:

:
Me deparei com um problema com meu desenvolvimento!
Fiz algumas vendas pelo mercado livre, um comprador fez a compra após ter recebido o programa disse que o mesmo não funciona e pediu o reembolso.
O triste é saber que você vai reembolsar o comprador e ele vai ficar usando seu programa. Pensei em fazer um trial e enviar e só depois de concluir a negociação (depois de recebido) então passar a chave. Mas pensei em algo mais pratico e vim buscar ajuda.

A ideia seria upar um arquivo txt em um site que seria uma lista de banimentos, quando executar o programa ele vai checar nesse arquivo do site se existe o e-mail do comprador, caso exista então ele fecha.
Difícil é saber como procurar para ter resultados, achei um modelo que bani através da ip

Alguma sugestão de como fazer? Ideias?



ip ele desliga o roteador e renova o ip, o que voce pode fazer e pegar o serial do hd ou outra coisa que seria de um alto custo para troca e banir por ai...mac da placa de rede...entre outros...




NOOBNET 15/06/2016 09:50:56
#463541
Fiz aqui um teste, é possível deletar um arquivo no ftp ou então upar o arquivo e substituir ele se existir? Sei como upar ele mas não como upar e substituir o arquivo existente. Ajuda?
MESTRE 15/06/2016 10:30:53
#463544
Existem meios mais fáceis e seguros do que ficar subindo arquivo txt.. lembre-se usuários são curiosos!!

você deve utilizar uma base de dados web, e fazer todos os try catch aliados a apenas um arquivo local pq daí mesmo se desligarem a internet não conseguirão usar o programa..
NOOBNET 16/06/2016 09:43:45
#463605
Obrigado pela ajuda, fiz aqui uma gambiarra por hora.. Coloquei um webbrowser como pagina inicial o meu site carrega pela ID o conteudo do txt para uma textbox1 com o texto padrão:
você não esta banido!
O programa depende da internet para funcionar.
Então quando quiser banir eu coloco um txt lá com o e-mail do cliente. O programa abre o site pelo webbrowser pela ID vai passar o conteudo para uma textbox1 se for igual
a textbox2 que no caso é o e-mail do cliente então o programa fecha. (o e-mail é fixo, a textbox2: enable = false)

Como disse é uma gambiarra então vou deixar aberto e tentar as dicas postadas aqui, obrigado mais uma vez pelas respostas.
Não gosto de gambiarras pois é para ser uma coisa temporária mas que nunca é, como os arames no meu carro..
KURTGU 16/06/2016 09:45:55
#463607
Citação:

:
Obrigado pela ajuda, fiz aqui uma gambiarra por hora.. Coloquei um webbrowser como pagina inicial o meu site carrega pela ID o conteudo do txt para uma textbox1 com o texto padrão:
você não esta banido!
O programa depende da internet para funcionar.
Então quando quiser banir eu coloco um txt lá com o e-mail do cliente. O programa abre o site pelo webbrowser pela ID vai passar o conteudo para uma textbox1 se for igual
a textbox2 que no caso é o e-mail do cliente então o programa fecha. (o e-mail é fixo, a textbox2: enable = false)

Como disse é uma gambiarra então vou deixar aberto e tentar as dicas postadas aqui, obrigado mais uma vez pelas respostas.
Não gosto de gambiarras pois é para ser uma coisa temporária mas que nunca é, como os arames no meu carro..



Gambiarra e apelido kkkk, cara é tão simples... Coloque dentro do sistema um campo CHAVE, Toda vez que se conectar verificar a chave no banco de dados se ela estiver Banida = fecha e avisa, simples. Para obrigar a pessoa a ultilizar a internet e so checar ao abrir o sistema a internet..
Página 1 de 2 [13 registro(s)]
Tópico encerrado , respostas não são mais permitidas